rtc u stm32
Fanda Kopriva
info na elektronikavyvoj.cz
Neděle Prosinec 15 16:54:24 CET 2019
Dobry den
mam alarm s stm32l152 ,ktery mi ma posilat hlasku v 19.00.
Zda se ze vsechno funguje ,az na tuto funkci ,ktera fungovala 4 dny a
potom prestala.
v prikladech od STM jsem nasel ,ze registr maskujou asi takto
cas = RTC_TR & 0x007f7f7f ;
A v manualu ukazujou ,ze na nepouzitych pozicich by mela byt nula ,takze
ja to nemaskuju.
V sms se mi to ukazuje spravne
strcpy(pomsc, "Cas-");strcat(U1bo,pomsc);
sprinti(pomsc,"%2x",hod);strcat(U1bo,pomsc);
sprinti(pomsc,"%3x",minut); strcat(U1bo,pomsc);
ukazuje Cas- 13.00 (mam tam chybu v bcd prevodu)
Od alarmu jsem docela daleko ,tak nevim jestli tam mam jet to zkoumat.
Setkali jste se s tim ,ze je to maskovani nutne a ze se tam tedy muze
vyskytnout nejaka blbost v registru RTC_TR ???
To by me totiz uklidnilo a opravil bych to az tam budu.
Dekuju Fanda
unsigned long hodiny,cas;
unsigned int hod,minut,minutm;
void RTCfce (void) {
RTC_ISR &= 0x20; //synchro
while (!((RTC_ISR & 0x20) || (timout>10000))) {timout++;} //initf
if (timout>1000) rtcerror |= 4;
cas = RTC_TR;
RTC_ISR &= 0x20; //synchro
while (!((RTC_ISR & 0x20) || (timout>10000))) {timout++;} //initf
datum = RTC_DR & ~0x2000;
}
RTCfce ();hodiny = cas >> 8;hod = hodiny >> 8;minut = hodiny & 0xff;
if ((hod==19) && (minut==0)) {if (minutm==9
){smskuju=1;minutm=5;smsopt=1;}} else minutm=9;
Další informace o konferenci Hw-list