|
33 | 33 | /******************************************************************************/ |
34 | 34 | // Low-level 1-Wire routines |
35 | 35 |
|
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) |
47 | 45 |
|
48 | 46 | STATIC int onewire_bus_reset(mp_hal_pin_obj_t pin) { |
49 | 47 | mp_hal_pin_write(pin, 0); |
50 | | - mp_hal_delay_us(esp_onewire_timings[TIMING_RESET1]); |
| 48 | + mp_hal_delay_us(TIMING_RESET1); |
51 | 49 | uint32_t i = mp_hal_quiet_timing_enter(); |
52 | 50 | 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); |
54 | 52 | int status = !mp_hal_pin_read(pin); |
55 | 53 | mp_hal_quiet_timing_exit(i); |
56 | | - mp_hal_delay_us(esp_onewire_timings[TIMING_RESET3]); |
| 54 | + mp_hal_delay_us(TIMING_RESET3); |
57 | 55 | return status; |
58 | 56 | } |
59 | 57 |
|
60 | 58 | STATIC int onewire_bus_readbit(mp_hal_pin_obj_t pin) { |
61 | 59 | mp_hal_pin_write(pin, 1); |
62 | 60 | uint32_t i = mp_hal_quiet_timing_enter(); |
63 | 61 | 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); |
65 | 63 | 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); |
67 | 65 | int value = mp_hal_pin_read(pin); |
68 | 66 | 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); |
70 | 68 | return value; |
71 | 69 | } |
72 | 70 |
|
73 | 71 | STATIC void onewire_bus_writebit(mp_hal_pin_obj_t pin, int value) { |
74 | 72 | uint32_t i = mp_hal_quiet_timing_enter(); |
75 | 73 | 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); |
77 | 75 | if (value) { |
78 | 76 | mp_hal_pin_write(pin, 1); |
79 | 77 | } |
80 | | - mp_hal_delay_us_fast(esp_onewire_timings[TIMING_WRITE2]); |
| 78 | + mp_hal_delay_us_fast(TIMING_WRITE2); |
81 | 79 | 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); |
83 | 81 | mp_hal_quiet_timing_exit(i); |
84 | 82 | } |
85 | 83 |
|
86 | 84 | /******************************************************************************/ |
87 | 85 | // MicroPython bindings |
88 | 86 |
|
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 | | - |
99 | 87 | STATIC mp_obj_t onewire_reset(mp_obj_t pin_in) { |
100 | 88 | return mp_obj_new_bool(onewire_bus_reset(mp_hal_get_pin_obj(pin_in))); |
101 | 89 | } |
@@ -158,7 +146,6 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(onewire_crc8_obj, onewire_crc8); |
158 | 146 | STATIC const mp_map_elem_t onewire_module_globals_table[] = { |
159 | 147 | { MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_onewire) }, |
160 | 148 |
|
161 | | - { MP_ROM_QSTR(MP_QSTR_timings), MP_ROM_PTR((mp_obj_t)&onewire_timings_obj) }, |
162 | 149 | { MP_ROM_QSTR(MP_QSTR_reset), MP_ROM_PTR((mp_obj_t)&onewire_reset_obj) }, |
163 | 150 | { MP_ROM_QSTR(MP_QSTR_readbit), MP_ROM_PTR((mp_obj_t)&onewire_readbit_obj) }, |
164 | 151 | { MP_ROM_QSTR(MP_QSTR_readbyte), MP_ROM_PTR((mp_obj_t)&onewire_readbyte_obj) }, |
|
0 commit comments