Added lispbm gpio-support for adc1 and adc2

This commit is contained in:
Benjamin Vedder 2022-05-03 22:53:10 +02:00
parent 2f9faf8ac9
commit 9ec5fec4cf
3 changed files with 32 additions and 0 deletions

View File

@ -58,6 +58,13 @@ void app_adc_configure(adc_config *conf) {
}
void app_adc_start(bool use_rx_tx) {
#ifdef HW_ADC_EXT_GPIO
palSetPadMode(HW_ADC_EXT_GPIO, HW_ADC_EXT_PIN, PAL_MODE_INPUT_ANALOG);
#endif
#ifdef HW_ADC_EXT2_GPIO
palSetPadMode(HW_ADC_EXT2_GPIO, HW_ADC_EXT2_PIN, PAL_MODE_INPUT_ANALOG);
#endif
use_rx_tx_as_buttons = use_rx_tx;
stop_now = false;
chThdCreateStatic(adc_thread_wa, sizeof(adc_thread_wa), NORMALPRIO, adc_thread, NULL);

View File

@ -944,6 +944,8 @@ Configure GPIO pin to mode. Example:
'pin-hall1 ; Sensor port hall1
'pin-hall2 ; Sensor port hall2
'pin-hall3 ; Sensor port hall3
'pin-adc1 ; ADC1-pin on COMM-port
'pin-adc2 ; ADC2-pin on COMM-port
; Available modes
'pin-mode-out ; Output

View File

@ -84,6 +84,8 @@ typedef struct {
lbm_uint pin_hall1;
lbm_uint pin_hall2;
lbm_uint pin_hall3;
lbm_uint pin_adc1;
lbm_uint pin_adc2;
// Settings
lbm_uint l_current_min;
@ -215,6 +217,10 @@ static bool compare_symbol(lbm_uint sym, lbm_uint *comp) {
get_add_symbol("pin-hall2", comp);
} else if (comp == &syms_vesc.pin_hall3) {
get_add_symbol("pin-hall3", comp);
} else if (comp == &syms_vesc.pin_adc1) {
get_add_symbol("pin-adc1", comp);
} else if (comp == &syms_vesc.pin_adc2) {
get_add_symbol("pin-adc2", comp);
}
else if (comp == &syms_vesc.l_current_min) {
@ -338,6 +344,16 @@ static bool gpio_get_pin(lbm_uint sym, stm32_gpio_t **port, int *pin) {
} else if (compare_symbol(sym, &syms_vesc.pin_hall3)) {
*port = HW_HALL_ENC_GPIO3; *pin = HW_HALL_ENC_PIN3;
return true;
} else if (compare_symbol(sym, &syms_vesc.pin_adc1)) {
#ifdef HW_ADC_EXT_GPIO
*port = HW_ADC_EXT_GPIO; *pin = HW_ADC_EXT_PIN;
return true;
#endif
} else if (compare_symbol(sym, &syms_vesc.pin_adc2)) {
#ifdef HW_ADC_EXT2_GPIO
*port = HW_ADC_EXT2_GPIO; *pin = HW_ADC_EXT2_PIN;
return true;
#endif
}
return false;
@ -2760,6 +2776,13 @@ static lbm_value ext_bufset_bit(lbm_value *args, lbm_uint argn) {
}
void lispif_load_vesc_extensions(void) {
#ifdef HW_ADC_EXT_GPIO
palSetPadMode(HW_ADC_EXT_GPIO, HW_ADC_EXT_PIN, PAL_MODE_INPUT_ANALOG);
#endif
#ifdef HW_ADC_EXT2_GPIO
palSetPadMode(HW_ADC_EXT2_GPIO, HW_ADC_EXT2_PIN, PAL_MODE_INPUT_ANALOG);
#endif
lbm_add_symbol_const("event-can-sid", &sym_event_can_sid);
lbm_add_symbol_const("event-can-eid", &sym_event_can_eid);
lbm_add_symbol_const("event-data-rx", &sym_event_data_rx);