Expose ISO jumper state over USB.
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
#include "main.h"
|
||||
#include "i2c_addresses.h"
|
||||
#include "i2c.h"
|
||||
#include "iso_jumper.h"
|
||||
|
||||
void SetError(uint8_t error);
|
||||
void SetGenericError();
|
||||
@@ -36,5 +37,8 @@ void BridgeProtocolHandler()
|
||||
BridgeTxSize = 0;
|
||||
TEST_LED_SET(BridgeRxBuffer[1]);
|
||||
break;
|
||||
case BRIDGE_COMMAND_GET_ISO_JUMPER_STATE:
|
||||
BridgeTxBuffer[0] = IsoJumperState;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#define BRIDGE_COMMAND_GET_KEY_STATES 0
|
||||
#define BRIDGE_COMMAND_SET_LED 1
|
||||
#define BRIDGE_COMMAND_GET_ISO_JUMPER_STATE 2
|
||||
|
||||
// Variables:
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "fsl_i2c.h"
|
||||
#include "fsl_clock.h"
|
||||
#include "i2c.h"
|
||||
#include "iso_jumper.h"
|
||||
|
||||
void InitI2c() {
|
||||
port_pin_config_t pinConfig = {
|
||||
@@ -41,5 +42,6 @@ void InitPeripherials(void)
|
||||
{
|
||||
InitLedDriver();
|
||||
InitTestLed();
|
||||
InitIsoJumper();
|
||||
InitI2c();
|
||||
}
|
||||
|
||||
14
left/src/iso_jumper.c
Normal file
14
left/src/iso_jumper.c
Normal file
@@ -0,0 +1,14 @@
|
||||
#include "iso_jumper.h"
|
||||
#include "fsl_port.h"
|
||||
|
||||
void InitIsoJumper() {
|
||||
CLOCK_EnableClock(ISO_JUMPER_INPUT_CLOCK);
|
||||
PORT_SetPinConfig(ISO_JUMPER_INPUT_PORT, ISO_JUMPER_INPUT_PIN,
|
||||
&(port_pin_config_t){.pullSelect=kPORT_PullDown, .mux=kPORT_MuxAsGpio});
|
||||
GPIO_PinInit(ISO_JUMPER_INPUT_GPIO, ISO_JUMPER_INPUT_PIN, &(gpio_pin_config_t){kGPIO_DigitalInput});
|
||||
|
||||
CLOCK_EnableClock(ISO_JUMPER_OUTPUT_CLOCK);
|
||||
PORT_SetPinConfig(ISO_JUMPER_OUTPUT_PORT, ISO_JUMPER_OUTPUT_PIN,
|
||||
&(port_pin_config_t){.pullSelect=kPORT_PullDisable, .mux=kPORT_MuxAsGpio});
|
||||
GPIO_PinInit(ISO_JUMPER_OUTPUT_GPIO, ISO_JUMPER_OUTPUT_PIN, &(gpio_pin_config_t){kGPIO_DigitalOutput, 1});
|
||||
}
|
||||
30
left/src/iso_jumper.h
Normal file
30
left/src/iso_jumper.h
Normal file
@@ -0,0 +1,30 @@
|
||||
#ifndef __ISO_JUMPER_H__
|
||||
#define __ISO_JUMPER_H__
|
||||
|
||||
// Includes:
|
||||
|
||||
#include "fsl_gpio.h"
|
||||
|
||||
// Macros:
|
||||
|
||||
#define ISO_JUMPER_INPUT_GPIO GPIOB
|
||||
#define ISO_JUMPER_INPUT_PORT PORTB
|
||||
#define ISO_JUMPER_INPUT_CLOCK kCLOCK_PortB
|
||||
#define ISO_JUMPER_INPUT_PIN 13
|
||||
#define ISO_JUMPER_INPUT_IRQ PORTB_IRQn
|
||||
#define ISO_JUMPER_INPUT_IRQ_HANDLER PORTB_IRQHandler
|
||||
|
||||
#define ISO_JUMPER_OUTPUT_GPIO GPIOA
|
||||
#define ISO_JUMPER_OUTPUT_PORT PORTA
|
||||
#define ISO_JUMPER_OUTPUT_CLOCK kCLOCK_PortA
|
||||
#define ISO_JUMPER_OUTPUT_PIN 6
|
||||
#define ISO_JUMPER_OUTPUT_IRQ PORTA_IRQn
|
||||
#define ISO_JUMPER_OUTPUT_IRQ_HANDLER PORTA_IRQHandler
|
||||
|
||||
#define ISO_JUMPER_IS_ENABLED !GPIO_ReadPinInput(ISO_JUMPER_INPUT_GPIO, ISO_JUMPER_INPUT_PIN)
|
||||
|
||||
// Functions:
|
||||
|
||||
extern void InitIsoJumper();
|
||||
|
||||
#endif
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "i2c.h"
|
||||
#include "init_peripherials.h"
|
||||
#include "bridge_protocol_handler.h"
|
||||
#include "iso_jumper.h"
|
||||
|
||||
key_matrix_t keyMatrix = {
|
||||
.colNum = KEYBOARD_MATRIX_COLS_NUM,
|
||||
@@ -30,6 +31,7 @@ key_matrix_t keyMatrix = {
|
||||
{PORTA, GPIOA, kCLOCK_PortA, 4}
|
||||
}
|
||||
};
|
||||
uint8_t IsoJumperState;
|
||||
|
||||
i2c_slave_config_t slaveConfig;
|
||||
i2c_slave_handle_t slaveHandle;
|
||||
@@ -63,6 +65,7 @@ int main(void)
|
||||
{
|
||||
InitClock();
|
||||
InitPeripherials();
|
||||
IsoJumperState = ISO_JUMPER_IS_ENABLED;
|
||||
|
||||
I2C_SlaveGetDefaultConfig(&slaveConfig);
|
||||
slaveConfig.slaveAddress = I2C_ADDRESS_LEFT_KEYBOARD_HALF;
|
||||
|
||||
@@ -13,5 +13,6 @@
|
||||
// Variables:
|
||||
|
||||
extern key_matrix_t keyMatrix;
|
||||
extern uint8_t IsoJumperState;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -18,6 +18,7 @@ void WriteEeprom();
|
||||
void ReadEeprom();
|
||||
void ReadMergeSensor();
|
||||
void ReadLedJumper();
|
||||
void ReadIsoJumper();
|
||||
|
||||
// Functions for setting error statuses
|
||||
|
||||
@@ -69,6 +70,9 @@ void UsbProtocolHandler()
|
||||
case USB_COMMAND_READ_LED_JUMPER:
|
||||
ReadLedJumper();
|
||||
break;
|
||||
case USB_COMMAND_READ_ISO_JUMPER:
|
||||
ReadIsoJumper();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -196,3 +200,14 @@ void ReadLedJumper()
|
||||
{
|
||||
SetResponseByte(LED_JUMPER_IS_ENABLED);
|
||||
}
|
||||
|
||||
void ReadIsoJumper()
|
||||
{
|
||||
uint8_t txBuffer[] = {2};
|
||||
I2cWrite(I2C_MAIN_BUS_BASEADDR, I2C_ADDRESS_LEFT_KEYBOARD_HALF, txBuffer, sizeof(txBuffer));
|
||||
|
||||
uint8_t rxBuffer[1];
|
||||
I2cRead(I2C_MAIN_BUS_BASEADDR, I2C_ADDRESS_LEFT_KEYBOARD_HALF, rxBuffer, sizeof(rxBuffer));
|
||||
|
||||
SetResponseByte(rxBuffer[0]);
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
#define USB_COMMAND_READ_EEPROM 6
|
||||
#define USB_COMMAND_READ_MERGE_SENSOR 7
|
||||
#define USB_COMMAND_READ_LED_JUMPER 8
|
||||
#define USB_COMMAND_READ_ISO_JUMPER 9
|
||||
|
||||
// Functions:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user