Real Time Clock ...dubbio funzione

Aug 06, 2008 2 Replies

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


"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.

Grazie mille per la risposta ho capito perfettamente...

vado ad approfondire argomento "BCD"

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required