diff --git a/right/src/init_peripherials.c b/right/src/init_peripherials.c index bb995d4..18f8c55 100644 --- a/right/src/init_peripherials.c +++ b/right/src/init_peripherials.c @@ -5,6 +5,7 @@ #include "i2c.h" #include "led_driver.h" #include "merge_sensor.h" +#include "led_jumper.h" void InitI2c() { port_pin_config_t pinConfig = { @@ -46,6 +47,7 @@ void InitI2c() { void InitPeripherials(void) { InitResetButton(); + InitLedJumper(); InitMergeSensor(); InitTestLed(); InitI2c(); diff --git a/right/src/led_jumper.c b/right/src/led_jumper.c new file mode 100644 index 0000000..aab7673 --- /dev/null +++ b/right/src/led_jumper.c @@ -0,0 +1,8 @@ +#include "led_jumper.h" +#include "fsl_port.h" + +void InitLedJumper() { + CLOCK_EnableClock(LED_JUMPER_CLOCK); + PORT_SetPinConfig(LED_JUMPER_PORT, LED_JUMPER_PIN, + &(port_pin_config_t){.pullSelect=kPORT_PullUp, .mux=kPORT_MuxAsGpio}); +} diff --git a/right/src/led_jumper.h b/right/src/led_jumper.h new file mode 100644 index 0000000..1fb0ed4 --- /dev/null +++ b/right/src/led_jumper.h @@ -0,0 +1,23 @@ +#ifndef __LED_JUMPER_H__ +#define __LED_JUMPER_H__ + +// Includes: + + #include "fsl_gpio.h" + +// Macros: + + #define LED_JUMPER_GPIO GPIOC + #define LED_JUMPER_PORT PORTC + #define LED_JUMPER_CLOCK kCLOCK_PortC + #define LED_JUMPER_PIN 4 + #define LED_JUMPER_IRQ PORTC_IRQn + #define LED_JUMPER_IRQ_HANDLER PORTC_IRQHandler + + #define LED_JUMPER_IS_ENABLED !GPIO_ReadPinInput(LED_JUMPER_GPIO, LED_JUMPER_PIN) + +// Functions: + + extern void InitLedJumper(); + +#endif diff --git a/right/src/usb_protocol_handler.c b/right/src/usb_protocol_handler.c index 221305e..2be77ba 100644 --- a/right/src/usb_protocol_handler.c +++ b/right/src/usb_protocol_handler.c @@ -4,6 +4,7 @@ #include "i2c_addresses.h" #include "led_driver.h" #include "merge_sensor.h" +#include "led_jumper.h" void SetError(uint8_t error); void SetGenericError(); @@ -16,6 +17,7 @@ void ReadLedDriver(); void WriteEeprom(); void ReadEeprom(); void ReadMergeSensor(); +void ReadLedJumper(); // Functions for setting error statuses @@ -64,6 +66,9 @@ void UsbProtocolHandler() case USB_COMMAND_READ_MERGE_SENSOR: ReadMergeSensor(); break; + case USB_COMMAND_READ_LED_JUMPER: + ReadLedJumper(); + break; default: break; } @@ -183,3 +188,8 @@ void ReadMergeSensor() { SetResponseByte(MERGE_SENSOR_IS_MERGED); } + +void ReadLedJumper() +{ + SetResponseByte(LED_JUMPER_IS_ENABLED); +} diff --git a/right/src/usb_protocol_handler.h b/right/src/usb_protocol_handler.h index c835b98..c726f20 100644 --- a/right/src/usb_protocol_handler.h +++ b/right/src/usb_protocol_handler.h @@ -25,6 +25,7 @@ #define WRITE_EEPROM_RESPONSE_INVALID_PAYLOAD_SIZE 1 #define USB_COMMAND_READ_EEPROM 6 #define USB_COMMAND_READ_MERGE_SENSOR 7 + #define USB_COMMAND_READ_LED_JUMPER 8 // Functions: