hallo zusamen ich bin ganz ganz anfanger ich versuchen mit STM32 RTC ein ganz ein fache uhr 0 bis 12 realesieren ich weis garnicht wie kann man das machen konte jemanden mir hinweis dazu geben
Gast
#2663573
Stm Library da gibt es viele Projektbeispiele in C. Da würde ich mich an deiner Stelle mal durchblättern. mfg Jan
Danke jan
ich konte die folgende code von Stm Library ich habe damit nur die RTC
konfiguriert und die secunde erzeugt aber das ist nicht alles ich weis
dass ich ein main funktin brauche und wie kann ich die folgende mit main
funtion ausfuhren
void RTC_Init(void)
{
/* CK_RTC clock selection */
RCC_APB1PeriphClockCmd( RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE
);
PWR_BackupAccessCmd( ENABLE ); /* Allow access to BKP Domain */
BKP_DeInit(); /* Reset Backup Domain */
RCC_LSEConfig( RCC_LSE_ON ); /* Enable the LSE OSC */
while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)
{} /* Wait till LSE is ready */
RCC_RTCCLKConfig( RCC_RTCCLKSource_LSE ); /* Select the RTC Clock Source
RCC_RTCCLKCmd( ENABLE ); /* Enable the RTC Clock */
RTC_WaitForSynchro(); /* Wait for RTC registers synchronization */
/* Wait until last write operation on RTC registers has finished */
RTC_WaitForLastTask();
RTC_ITConfig( RTC_IT_SEC, ENABLE ); /* Enable the RTC Second interrupt
*/
/* Wait until last write operation on RTC registers has finished */
RTC_WaitForLastTask();
/* Set RTC prescaler: set RTC period to 1sec */
/* RTC period = RTCCLK/RTC_PR = (32.768 KHz)/(32767+1) */
RTC_SetPrescaler( 32767 );
/* Wait until last write operation on RTC registers has finished */
RTC_WaitForLastTask();
}
RTC - ISR
> void RTC_IRQHandler(void)
> {
> if (RTC_GetITStatus(RTC_IT_SEC) != RESET)
> {
> if (getClock_state()!=0)
> {
> toogleGreen();
> DRAW_DisplayTime( 30, 30 );
> }
> }
> /* Clear the RTC Second interrupt */
> RTC_ClearITPendingBit(RTC_IT_SEC);
}
Oje, das kann ja keiner lesen!
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
Ok, ergänzend: --> RTC Alarm ist angeschaltet und sollte in der main refreshed werden, bzw die RTC flags im INT gelöscht werden. Selbstverständlich IRQ Fkt. eintragen.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
--> Abfrage der aktuellen TICKS über STM library --> RTC_GetCounter() -->µC wird über EXTI17 aus StopMode geweckt, bzw bei StanBy Reset, also EXTI17 weglassen oder nit Viel Spass, ich hoffe ich habe nix vergessen ansonsten fragen ! Gruss und moin.
dankeee Jean
ok
ein frage RTC lost ein secunde interrupt( Alarm pro secunde) an welche pin kann ich die secunde interrupt haben ist RTC mit ein bistimte pin verbunden oder kann mann die belibig mit ein pin verbinden von datasheet weis ich die ist mit TAMPER-RTC/ ALARM/SECOND OUT verbuden
eigentlich weis ich nicht die vorgangsweise
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.