Alexander Steffen | 299bc62 | 2017-06-29 23:14:58 +0200 | [diff] [blame] | 1 | #ifndef MICROPY_INCLUDED_ESP8266_MODMACHINE_H |
| 2 | #define MICROPY_INCLUDED_ESP8266_MODMACHINE_H |
Damien George | 1a65ff1 | 2016-04-12 13:53:04 +0100 | [diff] [blame] | 3 | |
| 4 | #include "py/obj.h" |
| 5 | |
Damien George | 87c6250 | 2015-02-13 22:21:44 +0000 | [diff] [blame] | 6 | extern const mp_obj_type_t pyb_pin_type; |
Damien George | de8b585 | 2015-06-22 23:03:17 +0100 | [diff] [blame] | 7 | extern const mp_obj_type_t pyb_rtc_type; |
Damien George | 342d903 | 2015-12-29 00:19:23 +0000 | [diff] [blame] | 8 | |
Damien George | 4ebdb1f | 2016-10-18 11:06:20 +1100 | [diff] [blame] | 9 | MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(pyb_info_obj); |
Damien George | a6aa35a | 2016-04-28 12:23:55 +0100 | [diff] [blame] | 10 | |
Damien George | 7059c8c | 2016-02-11 11:41:58 +0000 | [diff] [blame] | 11 | typedef struct _pyb_pin_obj_t { |
| 12 | mp_obj_base_t base; |
Damien George | 7059c8c | 2016-02-11 11:41:58 +0000 | [diff] [blame] | 13 | uint16_t phys_port; |
Damien George | 7059c8c | 2016-02-11 11:41:58 +0000 | [diff] [blame] | 14 | uint16_t func; |
Damien George | a9a732a | 2016-04-13 22:38:44 +0100 | [diff] [blame] | 15 | uint32_t periph; |
Damien George | 7059c8c | 2016-02-11 11:41:58 +0000 | [diff] [blame] | 16 | } pyb_pin_obj_t; |
| 17 | |
Damien George | a2d5d84 | 2016-04-22 10:04:12 +0100 | [diff] [blame] | 18 | const pyb_pin_obj_t pyb_pin_obj[16 + 1]; |
| 19 | |
Trammell hudson | 96a2cc5 | 2020-02-25 22:53:46 +0100 | [diff] [blame] | 20 | #define GPIO_MODE_INPUT (0) |
| 21 | #define GPIO_MODE_OUTPUT (1) |
| 22 | #define GPIO_MODE_OPEN_DRAIN (2) // synthesised |
| 23 | #define GPIO_PULL_NONE (0) |
| 24 | #define GPIO_PULL_UP (1) |
| 25 | // Removed in SDK 1.1.0 |
| 26 | // #define GPIO_PULL_DOWN (2) |
| 27 | |
| 28 | extern uint8_t pin_mode[16 + 1]; |
| 29 | |
Damien George | 674bf1b | 2016-04-14 11:15:43 +0100 | [diff] [blame] | 30 | void pin_init0(void); |
Damien George | 674bf1b | 2016-04-14 11:15:43 +0100 | [diff] [blame] | 31 | |
Damien George | 342d903 | 2015-12-29 00:19:23 +0000 | [diff] [blame] | 32 | uint mp_obj_get_pin(mp_obj_t pin_in); |
Damien George | 7059c8c | 2016-02-11 11:41:58 +0000 | [diff] [blame] | 33 | pyb_pin_obj_t *mp_obj_get_pin_obj(mp_obj_t pin_in); |
Damien George | 342d903 | 2015-12-29 00:19:23 +0000 | [diff] [blame] | 34 | int pin_get(uint pin); |
| 35 | void pin_set(uint pin, int value); |
Damien George | 1a65ff1 | 2016-04-12 13:53:04 +0100 | [diff] [blame] | 36 | |
Paul Sokolovsky | 8bc3fc2 | 2016-11-06 01:30:19 +0300 | [diff] [blame] | 37 | extern uint32_t pyb_rtc_alarm0_wake; |
| 38 | extern uint64_t pyb_rtc_alarm0_expiry; |
| 39 | |
Damien George | 8f20cdc | 2020-09-14 12:15:03 +1000 | [diff] [blame] | 40 | void pyb_rtc_set_us_since_epoch(uint64_t nowus); |
| 41 | uint64_t pyb_rtc_get_us_since_epoch(); |
Paul Sokolovsky | 8bc3fc2 | 2016-11-06 01:30:19 +0300 | [diff] [blame] | 42 | void rtc_prepare_deepsleep(uint64_t sleep_us); |
| 43 | |
Alexander Steffen | 299bc62 | 2017-06-29 23:14:58 +0200 | [diff] [blame] | 44 | #endif // MICROPY_INCLUDED_ESP8266_MODMACHINE_H |