From 3f106bf76e5d52bc15f226d0e2be748c87118b8e Mon Sep 17 00:00:00 2001 From: Terje Io Date: Sun, 17 Sep 2023 10:01:30 +0200 Subject: [PATCH] Fix for plasma plugin issue #2: MCP3221 ADC driver code not allowing plugin code to claim the input. --- grblHAL_Teensy4/src/ioports.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/grblHAL_Teensy4/src/ioports.c b/grblHAL_Teensy4/src/ioports.c index 93720ac..3fea155 100644 --- a/grblHAL_Teensy4/src/ioports.c +++ b/grblHAL_Teensy4/src/ioports.c @@ -91,7 +91,7 @@ inline static __attribute__((always_inline)) int32_t get_input (const input_sign do { if((DIGITAL_IN(input->gpio) ^ invert) == wait_for) { - value = DIGITAL_IN(input->gpio); + value = DIGITAL_IN(input->gpio) ^ invert; break; } if(delay) { @@ -270,6 +270,7 @@ static bool claim (io_port_type_t type, io_port_direction_t dir, uint8_t *port, } #if MCP3221_ENABLE else if(dir == Port_Input && (ok = *port == 0 && analog_in.mode.analog && !analog_in.mode.claimed)) { + hal.port.num_analog_in--; analog_in.mode.claimed = On; analog_in.description = description; } @@ -377,7 +378,7 @@ void ioports_init (pin_group_pins_t *aux_inputs, pin_group_pins_t *aux_outputs) #if MCP3221_ENABLE - analog_in.function = Input_Aux0; + analog_in.function = Input_Analog_Aux0; analog_in.group = PinGroup_AuxInput; analog_in.pin = 0; analog_in.port = "MCP3221:";