diff --git a/epicardium/epicardium.h b/epicardium/epicardium.h index 2ad19134960d6ec35e110266ea0abab3754b255a..e9071d04ba0ccb04221b6edd618a3cbfb723989b 100644 --- a/epicardium/epicardium.h +++ b/epicardium/epicardium.h @@ -496,6 +496,8 @@ enum gpio_pin { EPIC_GPIO_WRISTBAND_3 = 3, /** ``4``, Wristband connector 4 */ EPIC_GPIO_WRISTBAND_4 = 4, + /** ``5``, IR LED */ + EPIC_GPIO_IR_LED = 5, }; /** GPIO pin modes */ diff --git a/epicardium/modules/gpio.c b/epicardium/modules/gpio.c index 72ce3ba6a83f3b492e63f2837f3aa3369e004e24..27601b5a447b4da77151252bb37b8f3973de9f5f 100644 --- a/epicardium/modules/gpio.c +++ b/epicardium/modules/gpio.c @@ -28,6 +28,10 @@ gpio_cfg_t gpio_configs[] = { PIN_20, GPIO_FUNC_OUT, GPIO_PAD_NONE }, + [EPIC_GPIO_IR_LED] = { PORT_0, + PIN_23, + GPIO_FUNC_OUT, + GPIO_PAD_NONE }, }; static int s_adc_channels[] = { @@ -39,11 +43,12 @@ static int s_adc_channels[] = { */ [EPIC_GPIO_WRISTBAND_3] = -1, [EPIC_GPIO_WRISTBAND_4] = ADC_CH_4, + [EPIC_GPIO_IR_LED] = ADC_CH_7, }; int epic_gpio_set_pin_mode(uint8_t pin, uint8_t mode) { - if (pin < EPIC_GPIO_WRISTBAND_1 || pin > EPIC_GPIO_WRISTBAND_4) + if (pin < EPIC_GPIO_WRISTBAND_1 || pin > EPIC_GPIO_IR_LED) return -EINVAL; gpio_cfg_t *cfg = &gpio_configs[pin]; @@ -90,7 +95,7 @@ int epic_gpio_set_pin_mode(uint8_t pin, uint8_t mode) int epic_gpio_get_pin_mode(uint8_t pin) { - if (pin < EPIC_GPIO_WRISTBAND_1 || pin > EPIC_GPIO_WRISTBAND_4) + if (pin < EPIC_GPIO_WRISTBAND_1 || pin > EPIC_GPIO_IR_LED) return -EINVAL; gpio_cfg_t *cfg = &gpio_configs[pin]; @@ -111,7 +116,7 @@ int epic_gpio_get_pin_mode(uint8_t pin) int epic_gpio_write_pin(uint8_t pin, bool on) { - if (pin < EPIC_GPIO_WRISTBAND_1 || pin > EPIC_GPIO_WRISTBAND_4) + if (pin < EPIC_GPIO_WRISTBAND_1 || pin > EPIC_GPIO_IR_LED) return -EINVAL; gpio_cfg_t *cfg = &gpio_configs[pin]; @@ -128,7 +133,7 @@ int epic_gpio_write_pin(uint8_t pin, bool on) int epic_gpio_read_pin(uint8_t pin) { - if (pin < EPIC_GPIO_WRISTBAND_1 || pin > EPIC_GPIO_WRISTBAND_4) + if (pin < EPIC_GPIO_WRISTBAND_1 || pin > EPIC_GPIO_IR_LED) return -EINVAL; gpio_cfg_t *cfg = &gpio_configs[pin]; diff --git a/pycardium/modules/gpio.c b/pycardium/modules/gpio.c index 08db00b536b02ade2544b74a3ef24a94ef84e386..23a58ad787625c29c30b2515967c2ad8a8d8acbd 100644 --- a/pycardium/modules/gpio.c +++ b/pycardium/modules/gpio.c @@ -82,6 +82,8 @@ static const mp_rom_map_elem_t gpio_module_globals_table[] = { MP_OBJ_NEW_SMALL_INT(EPIC_GPIO_WRISTBAND_3) }, { MP_ROM_QSTR(MP_QSTR_WRISTBAND_4), MP_OBJ_NEW_SMALL_INT(EPIC_GPIO_WRISTBAND_4) }, + { MP_ROM_QSTR(MP_QSTR_IR_LED), + MP_OBJ_NEW_SMALL_INT(EPIC_GPIO_IR_LED) }, { MP_ROM_QSTR(MP_QSTR_mode), MP_ROM_PTR(&gpio_module_modes) }, }; static MP_DEFINE_CONST_DICT(gpio_module_globals, gpio_module_globals_table); diff --git a/pycardium/modules/qstrdefs.h b/pycardium/modules/qstrdefs.h index d5039a5a90a28d144b1f05139de0001eae9758ce..1ea4b7bc94cf5739f60ac5c0ae8063b35380ad03 100644 --- a/pycardium/modules/qstrdefs.h +++ b/pycardium/modules/qstrdefs.h @@ -163,6 +163,7 @@ Q(WRISTBAND_1) Q(WRISTBAND_2) Q(WRISTBAND_3) Q(WRISTBAND_4) +Q(IR_LED) Q(INPUT) Q(OUTPUT) Q(ADC)