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