BCD oblik je oblik u kojem se u pojedinim niblovima (gornjih ili donjih 4 bita bajta) nalaze decimalne cifre (od .0 do .9).
Otprilike ovako (brojevi sa tackom ispred su u decimalnom formatu):
Code:
Heksadecimalni Binarni format Binarni oblik BCD broja
0x1C b'00011100' (.28) 0010 (.2) 1000 (.8)
0x5F b'01011111' (.95) 1001 (.9) 0101 (.5)
Ocigledno je da u BCD formatu ne mozete prikazati brojeve vece od .99. Ovo proistice iz cinjenice da se unutar jednog nibla smeju naci samo sledeca stanja:
Code:
Binarni oblik nibla
0000 (.0)
0001 (.1)
0010 (.2)
0011 (.3)
0100 (.4)
0101 (.5)
0110 (.6)
0111 (.7)
1000 (.8)
1001 (.9)
Unutar DS1307 gornji nibl nije uvek u potpunosti iskoriscen, jer nemate 99 vec samo 59 sekundi. Na primer za desetine sekundi i minuta unutar gornjeg nibla nemate cifru vecu od .5, a za desetine meseca vece od .1.
U Microchipovim aplication notes imate par konverzionih rutina za BCD format.
AN526
BCD to binary conversion routines
Binary to BCD conversion routines
AN544
8-bit binary to 2 digit BCD conversion
16-bit binary to 5 digit BCD conversion
5-bit BCD to 16-bit binary conversion
P.S. Podforum Elektronika - Mikrokontroleri je prikladniji za pitanja u vezi PIC-a.
Dobrodosli na forum.
[Ovu poruku je menjao Stojan Trifunovic dana 07.03.2009. u 10:33 GMT+1]