Hallo
Ich arbeite mit dem STM32F103VCT6 und dem uVision von KEIL.
Meine Aufgabe ist es, die Laufzeit unseres Antriebes zu erfassen, bzw.
auf request an einen anderen Knoten zu senden. Ich habe beschlossen,
dass die Erfassung der Stunden genügt. Jetzt wollte ich den RTC so
konfigurieren, dass er alle Stunde einen Interrupt auslöst.
1 | RTC_ITConfig(RTC_IT_SEC, ENABLE);
|
1 | RCC_ClearFlag();
|
2 | RCC_HSEConfig(RCC_HSE_ON);
|
3 | while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET)
|
4 | {
|
5 | }
|
6 | RTC_EnterConfigMode();
|
7 | RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128);
|
8 | RCC_RTCCLKCmd(ENABLE);
|
9 | RTC_WaitForSynchro();
|
10 | RTC_WaitForLastTask();
|
11 | RTC_ITConfig(RTC_IT_SEC, ENABLE);
|
12 | RTC_WaitForLastTask();
|
13 | RTC_SetPrescaler(25000);
|
14 | RTC_WaitForLastTask();
|
15 | RTC_SetCounter(0);
|
16 | RTC_ExitConfigMode();
|
17 | RTCStat = RTC_GetITStatus(RTC_IT_SEC);
|
18 | NVIC_EnableIRQ(RTCAlarm_IRQn);
|
[c]
uint32_t RTC_CNT = 0:
BOOL RTCIRQ = false;
void RTC_IRQHandler(void)
{
RTC_ClearITPendingBit(RTC_IT_SEC);
RTC_CNT++;
if(RTCIRQ == false)
{
RTCIRQ = true;
}
else
{
RTCIRQ = false;
}
}
[c]
Jetzt finde ich aber nur das RTCAlarm_IRQn Number Definitionbit, eins
für RCTSec oder RTCOver siehe ich nicht.
Ich sehe beim RTC noch nicht ganz durch. Oder gibt es eine bessere
Lösung?
Vielen Dank und Gruss!
M.B.