Stability Fix

Clearing flags instead of ITStatus seems to improve stability in EXTI interrupts

Added ASSERT functionality for STM std periphery library

Also busy updating the HW validation menu


git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@411 05563f52-14a8-4384-a975-3d1654cca0fa
This commit is contained in:
mmi
2017-12-22 14:09:08 +00:00
parent 15d02bfa4f
commit 5e6e8a8ff5
17 changed files with 367 additions and 264 deletions

View File

@@ -83,7 +83,21 @@ extern struct Storm700* const storm700;
// internal FLASH
extern struct InternalFlash* const iFlash;
// Export of GPIOs
extern struct Gpio* const ledBicolourGreen;
extern struct Gpio* const ledBicolourRed;
extern struct Gpio* const solenoid;
extern struct Gpio* const buzzer;
extern struct Gpio* const mcp0Relay;
extern struct Gpio* const mcp1Relay;
extern struct Gpio* const mcp2Relay;
extern struct Gpio* const cat0Relay;
extern struct Gpio* const cat1Relay;
extern struct Gpio* const cat2Relay;
extern struct Gpio* const teslaRelay;
extern struct Gpio* const hv0Present;
extern struct Gpio* const hv1Present;
extern struct Gpio* const hv2Present;
extern struct Interlock* const interlock;

View File

@@ -127,66 +127,66 @@ ErrorStatus Keypad_construct(struct Keypad* self, size_t numberOfRows, size_t nu
LOGGER_INFO(mainLog, "Keypad task started");
self->initialized = true;
// // TUBE REPAIR
// struct KeypadQueueItem rxQueueItem;
// rxQueueItem.rowCoordinate = 0;
// rxQueueItem.columnCoordinate = 0;
// rxQueueItem.keyEvent = PRESSED;
// // Put event in queue
// xQueueSend(self->rxQueue, &rxQueueItem, 0);
// rxQueueItem.rowCoordinate = 0;
// rxQueueItem.columnCoordinate = 0;
// rxQueueItem.keyEvent = RELEASED;
// // Put event in queue
// xQueueSend(self->rxQueue, &rxQueueItem, 0);
//
// // SELECT CATHODE
// rxQueueItem.rowCoordinate = 0;
// rxQueueItem.columnCoordinate = 0;
// rxQueueItem.keyEvent = PRESSED;
// // Put event in queue
// xQueueSend(self->rxQueue, &rxQueueItem, 0);
// rxQueueItem.rowCoordinate = 0;
// rxQueueItem.columnCoordinate = 0;
// rxQueueItem.keyEvent = RELEASED;
// // Put event in queue
// xQueueSend(self->rxQueue, &rxQueueItem, 0);
//
// // SELECT PRESET
// rxQueueItem.rowCoordinate = 0;
// rxQueueItem.columnCoordinate = 0;
// rxQueueItem.keyEvent = PRESSED;
// // Put event in queue
// xQueueSend(self->rxQueue, &rxQueueItem, 0);
// rxQueueItem.rowCoordinate = 0;
// rxQueueItem.columnCoordinate = 0;
// rxQueueItem.keyEvent = RELEASED;
// // Put event in queue
// xQueueSend(self->rxQueue, &rxQueueItem, 0);
//
// // SELECT PRESET 7
// rxQueueItem.rowCoordinate = 2;
// rxQueueItem.columnCoordinate = 0;
// rxQueueItem.keyEvent = PRESSED;
// // Put event in queue
// xQueueSend(self->rxQueue, &rxQueueItem, 0);
// rxQueueItem.rowCoordinate = 2;
// rxQueueItem.columnCoordinate = 0;
// rxQueueItem.keyEvent = RELEASED;
// // Put event in queue
// xQueueSend(self->rxQueue, &rxQueueItem, 0);
//
// // START
// rxQueueItem.rowCoordinate = 0;
// rxQueueItem.columnCoordinate = 1;
// rxQueueItem.keyEvent = PRESSED;
// // Put event in queue
// xQueueSend(self->rxQueue, &rxQueueItem, 0);
// rxQueueItem.rowCoordinate = 0;
// rxQueueItem.columnCoordinate = 1;
// rxQueueItem.keyEvent = RELEASED;
// // Put event in queue
// xQueueSend(self->rxQueue, &rxQueueItem, 0);
// TUBE REPAIR
struct KeypadQueueItem rxQueueItem;
rxQueueItem.rowCoordinate = 0;
rxQueueItem.columnCoordinate = 0;
rxQueueItem.keyEvent = PRESSED;
// Put event in queue
xQueueSend(self->rxQueue, &rxQueueItem, 0);
rxQueueItem.rowCoordinate = 0;
rxQueueItem.columnCoordinate = 0;
rxQueueItem.keyEvent = RELEASED;
// Put event in queue
xQueueSend(self->rxQueue, &rxQueueItem, 0);
// SELECT CATHODE
rxQueueItem.rowCoordinate = 0;
rxQueueItem.columnCoordinate = 0;
rxQueueItem.keyEvent = PRESSED;
// Put event in queue
xQueueSend(self->rxQueue, &rxQueueItem, 0);
rxQueueItem.rowCoordinate = 0;
rxQueueItem.columnCoordinate = 0;
rxQueueItem.keyEvent = RELEASED;
// Put event in queue
xQueueSend(self->rxQueue, &rxQueueItem, 0);
// SELECT PRESET
rxQueueItem.rowCoordinate = 0;
rxQueueItem.columnCoordinate = 0;
rxQueueItem.keyEvent = PRESSED;
// Put event in queue
xQueueSend(self->rxQueue, &rxQueueItem, 0);
rxQueueItem.rowCoordinate = 0;
rxQueueItem.columnCoordinate = 0;
rxQueueItem.keyEvent = RELEASED;
// Put event in queue
xQueueSend(self->rxQueue, &rxQueueItem, 0);
// SELECT PRESET 7
rxQueueItem.rowCoordinate = 2;
rxQueueItem.columnCoordinate = 0;
rxQueueItem.keyEvent = PRESSED;
// Put event in queue
xQueueSend(self->rxQueue, &rxQueueItem, 0);
rxQueueItem.rowCoordinate = 2;
rxQueueItem.columnCoordinate = 0;
rxQueueItem.keyEvent = RELEASED;
// Put event in queue
xQueueSend(self->rxQueue, &rxQueueItem, 0);
// START
rxQueueItem.rowCoordinate = 0;
rxQueueItem.columnCoordinate = 1;
rxQueueItem.keyEvent = PRESSED;
// Put event in queue
xQueueSend(self->rxQueue, &rxQueueItem, 0);
rxQueueItem.rowCoordinate = 0;
rxQueueItem.columnCoordinate = 1;
rxQueueItem.keyEvent = RELEASED;
// Put event in queue
xQueueSend(self->rxQueue, &rxQueueItem, 0);
}
else

View File

@@ -267,7 +267,7 @@ ErrorStatus Uart_read (struct Uart* self, char* buffer, size_t length, size_t* a
void USART1_IRQHandler(void)
{
static signed portBASE_TYPE higherPriorityTaskWoken = pdFALSE;
signed portBASE_TYPE higherPriorityTaskWoken = pdFALSE;
//! Transmission register empty interrupt
@@ -316,7 +316,7 @@ void USART1_IRQHandler(void)
void USART3_IRQHandler(void)
{
static signed portBASE_TYPE higherPriorityTaskWoken = pdFALSE;
signed portBASE_TYPE higherPriorityTaskWoken = pdFALSE;
//! Transmission register empty interrupt