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

@@ -173,35 +173,36 @@ static ErrorStatus systeminfoCommandHandler(void)
LOGGER_INFO(mainLog, text);
// vTaskList(taskList);
// IODevice_write((struct IODevice*)uart1, taskList, 600);
// IODevice_write((struct IODevice*)uart1, taskList, strlen(taskList));
// IODevice_write((struct IODevice*)uart1, "\n\r\n\r", 5);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(initTaskHandle);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(errorTaskHandle);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(warningTaskHandle);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(interlock->taskHandle);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(mainLog->taskHandle);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(keypad->taskHandle);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(mainBuzzer->taskHandle);
vTaskDelay(100);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(mainDisplay->taskHandle);
#ifdef ENABLE_HW_VALIDATION
vTaskDelay(50);
OS_logTaskInfo(hwValidation->taskHandle);
#endif
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(sysTaskHandle);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(ledTaskHandle);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(mainMenu->menuCore->taskHandle);
vTaskDelay(100);
vTaskDelay(50);
OS_logTaskInfo(rp->taskHandle);
@@ -286,17 +287,22 @@ static void initTask(void* parameters)
hwTestItems.display = &nhd0420->displayDevice;
hwTestItems.internalADC = adc1;
hwTestItems.externalDAC = max5715;
// hwTestItems.power6v5Enable = Power6V5Supply_getGPIO();
hwTestItems.interlockNO = interlock->NO.io;
hwTestItems.interlockNC = interlock->NC.io;
hwTestItems.TeslaSecurity = TeslaGunSafety_getGpio();
hwTestItems.solenoid = CoverSolenoid_getGpio();
hwTestItems.mcp0Relay = CathodeMCP_getInstance()->mcp0;
hwTestItems.mcp1Relay = CathodeMCP_getInstance()->mcp1;
hwTestItems.mcp2Relay = CathodeMCP_getInstance()->mcp2;
hwTestItems.cat0Relay = CathodeMCP_getInstance()->cat0;
hwTestItems.cat1Relay = CathodeMCP_getInstance()->cat1;
hwTestItems.cat2Relay = CathodeMCP_getInstance()->cat2;
hwTestItems.TeslaSecurity = teslaRelay;
hwTestItems.solenoid = solenoid;
hwTestItems.mcp0Relay = mcp0Relay;
hwTestItems.mcp1Relay = mcp1Relay;
hwTestItems.mcp2Relay = mcp2Relay;
hwTestItems.cat0Relay = cat0Relay;
hwTestItems.cat1Relay = cat1Relay;
hwTestItems.cat2Relay = cat2Relay;
hwTestItems.buzzer = mainBuzzer;
hwTestItems.bicolourRed = ledBicolourRed;
hwTestItems.bicolourGreen = ledBicolourGreen;
hwTestItems.hv0 = hv0Present;
hwTestItems.hv1 = hv1Present;
hwTestItems.hv2 = hv2Present;
hwTestItems.pcba = PCBA_getInstance();
hwTestItems.keypad = keypad;
// EEPROM TO BE DONE
@@ -340,7 +346,7 @@ static void ledBlinkTask (void* parameters)
int frequency = arguments->frequency;
while (1)
{
Led_on(arguments->led);
// Led_on(arguments->led);
if (PCBA_getInstance()->pcba == PCBA_CathodeMCP)
{
@@ -354,7 +360,7 @@ static void ledBlinkTask (void* parameters)
}
vTaskDelay(configTICK_RATE_HZ / (frequency * 2));
Led_off(arguments->led);
// Led_off(arguments->led);
indicator[0] = ' ';
// Display_write(mainDisplay, indicator, 1, 20);
vTaskDelay(configTICK_RATE_HZ / (frequency * 2));