Going on with structure
Added observer/observable for RTC git-svn-id: https://svn.vbchaos.nl/svn/hsb/trunk@251 05563f52-14a8-4384-a975-3d1654cca0fa
This commit is contained in:
@@ -30,6 +30,7 @@
|
||||
#include "queue.h"
|
||||
#include "semphr.h"
|
||||
|
||||
#include "hsb-mrts.h"
|
||||
#include "stm32f10x_it.h"
|
||||
|
||||
#include "stm32f10x_exti.h"
|
||||
@@ -53,12 +54,12 @@
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// Type definitions
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
// File-scope variables
|
||||
// -----------------------------------------------------------------------------
|
||||
@@ -231,7 +232,26 @@ void SPI3_IRQHandler (void)
|
||||
}
|
||||
|
||||
|
||||
void EXTI0_IRQHandler(void)
|
||||
{
|
||||
static signed portBASE_TYPE higherPriorityTaskWoken = pdFALSE;
|
||||
|
||||
EXTI_ClearITPendingBit(EXTI_Line0);
|
||||
LOGGER_ERROR_ISR(mainLog, "EXTI0 IRQ TRIGGERED");
|
||||
|
||||
portEND_SWITCHING_ISR(higherPriorityTaskWoken);
|
||||
}
|
||||
|
||||
|
||||
void EXTI1_IRQHandler(void)
|
||||
{
|
||||
static signed portBASE_TYPE higherPriorityTaskWoken = pdFALSE;
|
||||
|
||||
EXTI_ClearITPendingBit(EXTI_Line1);
|
||||
LOGGER_ERROR_ISR(mainLog, "EXTI1 IRQ TRIGGERED");
|
||||
|
||||
portEND_SWITCHING_ISR(higherPriorityTaskWoken);
|
||||
}
|
||||
|
||||
|
||||
void EXTI4_IRQHandler(void)
|
||||
@@ -274,15 +294,47 @@ void EXTI9_5_IRQHandler (void)
|
||||
else if (EXTI_GetITStatus(EXTI_Line9) != RESET)
|
||||
{
|
||||
EXTI_ClearITPendingBit(EXTI_Line9);
|
||||
LOGGER_ERROR_ISR(mainLog, "EXTI9 IRQ TRIGGERED");
|
||||
}
|
||||
|
||||
portEND_SWITCHING_ISR(higherPriorityTaskWoken);
|
||||
}
|
||||
|
||||
|
||||
void EXTI15_10_IRQHandler (void)
|
||||
{
|
||||
static signed portBASE_TYPE higherPriorityTaskWoken = pdFALSE;
|
||||
|
||||
if (EXTI_GetITStatus(EXTI_Line10) != RESET)
|
||||
{
|
||||
EXTI_ClearITPendingBit(EXTI_Line10);
|
||||
LOGGER_ERROR_ISR(mainLog, "EXTI10 IRQ TRIGGERED");
|
||||
}
|
||||
else if (EXTI_GetITStatus(EXTI_Line11) != RESET)
|
||||
{
|
||||
EXTI_ClearITPendingBit(EXTI_Line11);
|
||||
}
|
||||
else if (EXTI_GetITStatus(EXTI_Line12) != RESET)
|
||||
{
|
||||
EXTI_ClearITPendingBit(EXTI_Line12);
|
||||
}
|
||||
else if (EXTI_GetITStatus(EXTI_Line13) != RESET)
|
||||
{
|
||||
EXTI_ClearITPendingBit(EXTI_Line13);
|
||||
}
|
||||
else if (EXTI_GetITStatus(EXTI_Line14) != RESET)
|
||||
{
|
||||
EXTI_ClearITPendingBit(EXTI_Line14);
|
||||
}
|
||||
else if (EXTI_GetITStatus(EXTI_Line15) != RESET)
|
||||
{
|
||||
EXTI_ClearITPendingBit(EXTI_Line15);
|
||||
}
|
||||
|
||||
portEND_SWITCHING_ISR(higherPriorityTaskWoken);
|
||||
}
|
||||
|
||||
|
||||
extern struct Display* display;
|
||||
extern struct RepairProcess* rp;
|
||||
extern struct RepairMenu* rm;
|
||||
|
||||
void RTC_IRQHandler(void)
|
||||
{
|
||||
@@ -294,9 +346,8 @@ void RTC_IRQHandler(void)
|
||||
RTC_ClearITPendingBit(RTC_IT_SEC);
|
||||
|
||||
xSemaphoreGiveFromISR(rtc->secondSync, &higherPriorityTaskWoken);
|
||||
Display_feedRefreshCounter(display);
|
||||
repairProcess_feedSecondsCounterFromISR(rp);
|
||||
repairMenu_feedSecondsCounterFromISR(rm);
|
||||
|
||||
Observable_notifyObservers(RTC_getObservable(rtc), NULL);
|
||||
|
||||
|
||||
/* Wait until last write operation on RTC registers has finished */
|
||||
|
||||
Reference in New Issue
Block a user