Real Time Clock ...dubbio funzione

Ciao a tutti stavo dando un occhiata ai vari esempi presenti nel compilatore mikroC ce n'è uno riguardo ad un realtime clock il valore viene inviato attraverso l'I2C al pic

ho visto questa funzione...che non sono riuscito a decodificare correttamente (non ho capito cosa esattamente faccia) c'è scritto che formatta la data e l'ora...però non ho capito ke ragionamento segua...

ve la posto...

//-------------------- Formats date and time void Transform_Time(char *sec, char *min, char *hr, char *day, char *mn, char *year) { *sec = ((*sec & 0xF0) >> 4)*10 + (*sec & 0x0F); *min = ((*min & 0xF0) >> 4)*10 + (*min & 0x0F); *hr = ((*hr & 0xF0) >> 4)*10 + (*hr & 0x0F); *year = (*day & 0xC0) >> 6; *day = ((*day & 0x30) >> 4)*10 + (*day & 0x0F); *mn = ((*mn & 0x10) >> 4)*10 + (*mn & 0x0F); }//~

Grazie come sempre del vostro prezioso aiuto e della vostra disponibilità

Contrario

Reply to
Contrario
Loading thread data ...

"Contrario" ha scritto nel messaggio news:489a0641$0$40316$ snipped-for-privacy@reader5.news.tin.it...

Esegue una conversione dal formato BCD al formato binario. Questo fa presumere che, come nella maggioranza dei casi, il circuito RTC tratti i dati nel formato BCD. Nel formato BCD il nibble più significativo (ovvero i 4 bit superiori) contiene le decine, mentre il nibble meno significativo contiene i decimali. Perciò la riga

non fa altro che prendere la cifra più significativa dei secondi e moltiplicarla per 10, per poi aggiungere la cifra meno significativa, che sono appunto le unità, al fine di ottenere il dato in formato binario.

Ciao

Roberto P.

Reply to
Roberto P.

Grazie mille per la risposta ho capito perfettamente...

vado ad approfondire argomento "BCD"

Reply to
Contrario

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.