void rtcWrite (u8 rtcAdr, u8 rtcData)
rtcAdr : 어드레스 (0 부터 6 까지 사용가능) |
rtcData : 데이터 |
RTC칩의 해당 어드레스에 데이터를 기록합니다.
MOACON 에는 정밀도가 높은 RTC 칩이 내장되어 있습니다. 이 칩은 온도센서를 포함하고 있어 온도변화에 따른 오차를 줄여줍니다. 또한 건전지가 내장되어 있어, 전원이 없는 상황에서도 시간이 계속 갱신됩니다.
건전지 교환주기는 10 년입니다. 교환시기가 되면,모아콘 CPU 모듈을 분해한뒤 내부에 RTC 용 건전지(CR2032)를 교환해주시기 바랍니다.
다음은 RTC 칩의 어드레스별 데이터 정보입니다.
rtcAdr | Value | Range | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
---|---|---|---|---|---|---|---|---|---|---|
0 | Second | 0 to 59 | 2nd digit place | 1st digit place | ||||||
1 | Minute | 0 to 59 | 2nd digit place | 1st digit place | ||||||
2 | Hour | 0 to 23 | 2nd digit place | 1st digit place | ||||||
3 | Day | 1 to 7 | 1st digit place | |||||||
4 | Date | 1 to 31 | 2nd digit place | 1st digit place | ||||||
5 | Month | 1 to 12 | 2nd digit | 1st digit place | ||||||
6 | Year | 00 to 99 | 2nd digit place | 1st digit place |
데이터는 BCD 코드형태로 기록됩니다. 즉 상위 4 비트와 하위 4 비트에 숫자 한자릿수씩 위치합니다. 요일의 경우 숫자로 기록되며, 다음과 같은 의미로 사용됩니다.
Sunday | 1 |
Monday | 2 |
Tuesday | 3 |
Wednesday | 4 |
Thursday | 5 |
Friday | 6 |
Saturday | 7 |
Hour (시간)은 0 부터 23 까지 변화되므로 12 보다 클경우 오후, 작을경우 오전으로 판단하시면 됩니다.
모아콘에 사용된 RTC 칩은 일반적인 RTC 칩보다는 정밀하지만, 실제 시간과 100% 일치는 보장할 수 없습니다. 이점 유의하시기 바랍니다.
// // 다음 프로그램을 실행시키면 12 시 59 분 55 초부터 표시를 시작합니다. // #include "moacon500.h" void cmain(void) { int i=0; clcdI2cInit(0); // 슬레이브 어드레스는 0 으로 합니다. clcdPower(1); // lcd 의 Power 를 On delay(100); // clcd 기동시간 대기 clcdCls(); clcdCsr(0); clcdPrint(0,1,"HH MM SS"); rtcWrite(0,0x55); // sec write rtcWrite(1,0x59); // min write rtcWrite(2,0x12); // hour write while(1) { clcdPrint(0,2,"%02X",rtcRead(2)); clcdPrint(4,2,"%02X",rtcRead(1)); clcdPrint(8,2,"%02X",rtcRead(0)); delay(500); } }