Skip to content

Commit 0c13b95

Browse files
committed
esp8266/modonewire: Make timings static and remove onewire.timings func.
The 1-wire bus is defined with fixed timings so there should be no need to change them dynamically at runtime. Making the timings fixed saves about 270 bytes of code and 20 bytes of RAM.
1 parent 68c640d commit 0c13b95

File tree

1 file changed

+18
-31
lines changed

1 file changed

+18
-31
lines changed

esp8266/modonewire.c

Lines changed: 18 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -33,69 +33,57 @@
3333
/******************************************************************************/
3434
// Low-level 1-Wire routines
3535

36-
#define TIMING_RESET1 (0)
37-
#define TIMING_RESET2 (1)
38-
#define TIMING_RESET3 (2)
39-
#define TIMING_READ1 (3)
40-
#define TIMING_READ2 (4)
41-
#define TIMING_READ3 (5)
42-
#define TIMING_WRITE1 (6)
43-
#define TIMING_WRITE2 (7)
44-
#define TIMING_WRITE3 (8)
45-
46-
STATIC uint16_t esp_onewire_timings[9] = {480, 40, 420, 5, 5, 40, 10, 50, 10};
36+
#define TIMING_RESET1 (480)
37+
#define TIMING_RESET2 (40)
38+
#define TIMING_RESET3 (420)
39+
#define TIMING_READ1 (5)
40+
#define TIMING_READ2 (5)
41+
#define TIMING_READ3 (40)
42+
#define TIMING_WRITE1 (10)
43+
#define TIMING_WRITE2 (50)
44+
#define TIMING_WRITE3 (10)
4745

4846
STATIC int onewire_bus_reset(mp_hal_pin_obj_t pin) {
4947
mp_hal_pin_write(pin, 0);
50-
mp_hal_delay_us(esp_onewire_timings[TIMING_RESET1]);
48+
mp_hal_delay_us(TIMING_RESET1);
5149
uint32_t i = mp_hal_quiet_timing_enter();
5250
mp_hal_pin_write(pin, 1);
53-
mp_hal_delay_us_fast(esp_onewire_timings[TIMING_RESET2]);
51+
mp_hal_delay_us_fast(TIMING_RESET2);
5452
int status = !mp_hal_pin_read(pin);
5553
mp_hal_quiet_timing_exit(i);
56-
mp_hal_delay_us(esp_onewire_timings[TIMING_RESET3]);
54+
mp_hal_delay_us(TIMING_RESET3);
5755
return status;
5856
}
5957

6058
STATIC int onewire_bus_readbit(mp_hal_pin_obj_t pin) {
6159
mp_hal_pin_write(pin, 1);
6260
uint32_t i = mp_hal_quiet_timing_enter();
6361
mp_hal_pin_write(pin, 0);
64-
mp_hal_delay_us_fast(esp_onewire_timings[TIMING_READ1]);
62+
mp_hal_delay_us_fast(TIMING_READ1);
6563
mp_hal_pin_write(pin, 1);
66-
mp_hal_delay_us_fast(esp_onewire_timings[TIMING_READ2]);
64+
mp_hal_delay_us_fast(TIMING_READ2);
6765
int value = mp_hal_pin_read(pin);
6866
mp_hal_quiet_timing_exit(i);
69-
mp_hal_delay_us_fast(esp_onewire_timings[TIMING_READ3]);
67+
mp_hal_delay_us_fast(TIMING_READ3);
7068
return value;
7169
}
7270

7371
STATIC void onewire_bus_writebit(mp_hal_pin_obj_t pin, int value) {
7472
uint32_t i = mp_hal_quiet_timing_enter();
7573
mp_hal_pin_write(pin, 0);
76-
mp_hal_delay_us_fast(esp_onewire_timings[TIMING_WRITE1]);
74+
mp_hal_delay_us_fast(TIMING_WRITE1);
7775
if (value) {
7876
mp_hal_pin_write(pin, 1);
7977
}
80-
mp_hal_delay_us_fast(esp_onewire_timings[TIMING_WRITE2]);
78+
mp_hal_delay_us_fast(TIMING_WRITE2);
8179
mp_hal_pin_write(pin, 1);
82-
mp_hal_delay_us_fast(esp_onewire_timings[TIMING_WRITE3]);
80+
mp_hal_delay_us_fast(TIMING_WRITE3);
8381
mp_hal_quiet_timing_exit(i);
8482
}
8583

8684
/******************************************************************************/
8785
// MicroPython bindings
8886

89-
STATIC mp_obj_t onewire_timings(mp_obj_t timings_in) {
90-
mp_obj_t *items;
91-
mp_obj_get_array_fixed_n(timings_in, 9, &items);
92-
for (int i = 0; i < 9; ++i) {
93-
esp_onewire_timings[i] = mp_obj_get_int(items[i]);
94-
}
95-
return mp_const_none;
96-
}
97-
STATIC MP_DEFINE_CONST_FUN_OBJ_1(onewire_timings_obj, onewire_timings);
98-
9987
STATIC mp_obj_t onewire_reset(mp_obj_t pin_in) {
10088
return mp_obj_new_bool(onewire_bus_reset(mp_hal_get_pin_obj(pin_in)));
10189
}
@@ -158,7 +146,6 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(onewire_crc8_obj, onewire_crc8);
158146
STATIC const mp_map_elem_t onewire_module_globals_table[] = {
159147
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_onewire) },
160148

161-
{ MP_ROM_QSTR(MP_QSTR_timings), MP_ROM_PTR((mp_obj_t)&onewire_timings_obj) },
162149
{ MP_ROM_QSTR(MP_QSTR_reset), MP_ROM_PTR((mp_obj_t)&onewire_reset_obj) },
163150
{ MP_ROM_QSTR(MP_QSTR_readbit), MP_ROM_PTR((mp_obj_t)&onewire_readbit_obj) },
164151
{ MP_ROM_QSTR(MP_QSTR_readbyte), MP_ROM_PTR((mp_obj_t)&onewire_readbyte_obj) },

0 commit comments

Comments
 (0)