Added support for second AUX port

This commit is contained in:
Benjamin Vedder 2022-01-25 20:59:15 +01:00
parent 015a657cc9
commit d61fc474fc
6 changed files with 59 additions and 2 deletions

View File

@ -231,6 +231,12 @@
#ifndef AUX_OFF
#define AUX_OFF()
#endif
#ifndef AUX2_ON
#define AUX2_ON()
#endif
#ifndef AUX2_OFF
#define AUX2_OFF()
#endif
#ifndef PHASE_FILTER_ON
#define PHASE_FILTER_ON()

View File

@ -88,11 +88,15 @@ void hw_init_gpio(void) {
CURRENT_FILTER_OFF();
// AUX pin
// AUX pins
AUX_OFF();
palSetPadMode(AUX_GPIO, AUX_PIN,
PAL_MODE_OUTPUT_PUSHPULL |
PAL_STM32_OSPEED_HIGHEST);
AUX2_OFF();
palSetPadMode(AUX2_GPIO, AUX2_PIN,
PAL_MODE_OUTPUT_PUSHPULL |
PAL_STM32_OSPEED_HIGHEST);
// Sensor port voltage
SENSOR_PORT_3V3();

View File

@ -55,6 +55,10 @@
#define AUX_PIN 12
#define AUX_ON() palSetPad(AUX_GPIO, AUX_PIN)
#define AUX_OFF() palClearPad(AUX_GPIO, AUX_PIN)
#define AUX2_GPIO GPIOC
#define AUX2_PIN 13
#define AUX2_ON() palSetPad(AUX2_GPIO, AUX2_PIN)
#define AUX2_OFF() palClearPad(AUX2_GPIO, AUX2_PIN)
#define CURRENT_FILTER_GPIO GPIOD
#define CURRENT_FILTER_PIN 2

View File

@ -247,6 +247,30 @@ static lbm_value ext_secs_since(lbm_value *args, lbm_uint argn) {
return lbm_enc_F(UTILS_AGE_S(lbm_dec_as_u(args[0])));
}
static lbm_value ext_set_aux(lbm_value *args, lbm_uint argn) {
CHECK_ARGN_NUMBER(2);
int port = lbm_dec_as_u(args[0]);
bool on = lbm_dec_as_u(args[1]);
if (port == 1) {
if (on) {
AUX_ON();
} else {
AUX_OFF();
}
return lbm_enc_sym(SYM_TRUE);
} else if (port == 2) {
if (on) {
AUX2_ON();
} else {
AUX2_OFF();
}
return lbm_enc_sym(SYM_TRUE);
}
return lbm_enc_sym(SYM_EERROR);
}
// Motor set commands
static lbm_value ext_set_current(lbm_value *args, lbm_uint argn) {
@ -476,6 +500,7 @@ void lispif_load_vesc_extensions(void) {
lbm_add_extension("get-adc", ext_get_adc);
lbm_add_extension("systime", ext_systime);
lbm_add_extension("secs-since", ext_secs_since);
lbm_add_extension("set-aux", ext_set_aux);
// Motor set commands
lbm_add_extension("set-current", ext_set_current);

View File

@ -50,8 +50,9 @@ Item {
// mLogReader.openLogFile("example_control_servo_from_encoder.lisp")
// mLogReader.openLogFile("example_control_servo_from_duty.lisp")
// mLogReader.openLogFile("example_print_bms_data.lisp")
mLogReader.openLogFile("example_can_pos_follow.lisp")
// mLogReader.openLogFile("example_can_pos_follow.lisp")
// mLogReader.openLogFile("example_speed_test.lisp")
mLogReader.openLogFile("example_aux.lisp")
//
// mLogReader.openLogFile("test_math.lisp")

View File

@ -0,0 +1,17 @@
(define set-auxtime (lambda (port state time)
(progn
(set-aux port state)
(define aux-now (list port state time))
(yield (* 1000 time))
)))
(let ((f (lambda ()
(progn
(set-auxtime 1 1 1500)
(set-auxtime 1 0 500)
(set-auxtime 2 1 1500)
(set-auxtime 2 0 500)
(yield 1000000)
(f)
)))) (f))