Damien George | 1a65ff1 | 2016-04-12 13:53:04 +0100 | [diff] [blame] | 1 | #ifndef __MICROPY_INCLUDED_ESP8266_MODPYB_H__ |
| 2 | #define __MICROPY_INCLUDED_ESP8266_MODPYB_H__ |
| 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 | 632d8ef | 2016-03-02 13:37:27 +0000 | [diff] [blame] | 7 | extern const mp_obj_type_t pyb_pwm_type; |
Josef Gajdusek | 25a8a42 | 2015-05-18 18:35:56 +0200 | [diff] [blame] | 8 | extern const mp_obj_type_t pyb_adc_type; |
Damien George | de8b585 | 2015-06-22 23:03:17 +0100 | [diff] [blame] | 9 | extern const mp_obj_type_t pyb_rtc_type; |
Damien George | 1a0a323 | 2016-04-06 19:45:52 +0300 | [diff] [blame] | 10 | extern const mp_obj_type_t pyb_uart_type; |
Damien George | dd32f02 | 2016-02-11 12:43:41 +0000 | [diff] [blame] | 11 | extern const mp_obj_type_t pyb_i2c_type; |
Damien George | ad16685 | 2016-12-08 14:41:58 +1100 | [diff] [blame] | 12 | extern const mp_obj_type_t machine_hspi_type; |
Damien George | 342d903 | 2015-12-29 00:19:23 +0000 | [diff] [blame] | 13 | |
Damien George | 4ebdb1f | 2016-10-18 11:06:20 +1100 | [diff] [blame] | 14 | MP_DECLARE_CONST_FUN_OBJ_VAR_BETWEEN(pyb_info_obj); |
Damien George | a6aa35a | 2016-04-28 12:23:55 +0100 | [diff] [blame] | 15 | |
Damien George | 7059c8c | 2016-02-11 11:41:58 +0000 | [diff] [blame] | 16 | typedef struct _pyb_pin_obj_t { |
| 17 | mp_obj_base_t base; |
Damien George | 7059c8c | 2016-02-11 11:41:58 +0000 | [diff] [blame] | 18 | uint16_t phys_port; |
Damien George | 7059c8c | 2016-02-11 11:41:58 +0000 | [diff] [blame] | 19 | uint16_t func; |
Damien George | a9a732a | 2016-04-13 22:38:44 +0100 | [diff] [blame] | 20 | uint32_t periph; |
Damien George | 7059c8c | 2016-02-11 11:41:58 +0000 | [diff] [blame] | 21 | } pyb_pin_obj_t; |
| 22 | |
Damien George | a2d5d84 | 2016-04-22 10:04:12 +0100 | [diff] [blame] | 23 | const pyb_pin_obj_t pyb_pin_obj[16 + 1]; |
| 24 | |
Damien George | 674bf1b | 2016-04-14 11:15:43 +0100 | [diff] [blame] | 25 | void pin_init0(void); |
| 26 | void pin_intr_handler_iram(void *arg); |
| 27 | void pin_intr_handler(uint32_t); |
| 28 | |
Damien George | 342d903 | 2015-12-29 00:19:23 +0000 | [diff] [blame] | 29 | uint mp_obj_get_pin(mp_obj_t pin_in); |
Damien George | 7059c8c | 2016-02-11 11:41:58 +0000 | [diff] [blame] | 30 | 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] | 31 | int pin_get(uint pin); |
| 32 | void pin_set(uint pin, int value); |
Damien George | 1a65ff1 | 2016-04-12 13:53:04 +0100 | [diff] [blame] | 33 | |
Paul Sokolovsky | 8bc3fc2 | 2016-11-06 01:30:19 +0300 | [diff] [blame] | 34 | extern uint32_t pyb_rtc_alarm0_wake; |
| 35 | extern uint64_t pyb_rtc_alarm0_expiry; |
| 36 | |
| 37 | void pyb_rtc_set_us_since_2000(uint64_t nowus); |
| 38 | uint64_t pyb_rtc_get_us_since_2000(); |
| 39 | void rtc_prepare_deepsleep(uint64_t sleep_us); |
| 40 | |
Damien George | 1a65ff1 | 2016-04-12 13:53:04 +0100 | [diff] [blame] | 41 | #endif // __MICROPY_INCLUDED_ESP8266_MODPYB_H__ |