====== Time ====== ''Variable = Time ( Address )'' | //Variable : 결과를 저장할 정수형 변수 // | | //Address : RTC의 번지 (0부터 6까지) // | ==== 대상제품 ==== CB290, CT1721C ==== 설명 ==== RTC칩에
에서 데이터를 읽어옵니다. ^0번지 ^ 초 (0 ~ &H59)^ |1번지 | 분 (0 ~ &H59)| |2번지 | 시간 (0 ~ &H23)| |3번지 | 날짜 (1 ~ &H31)| |4번지 | 요일 (1 ~ 7 ) 1=일요일, 2=월요일...7=토요일| |5번지 | 월 (1 ~ &H12)| |6번지 | 연도 (0 ~ &H99) 2000년을 더하면됩니다.| 상위4비트에는 10이상의 값이 저장되고, 하위 4비트에는 10이하의 값이 저장됩니다. 따라서 읽어온 데이터는 16진 형으로 표시해야 제대로 된 값이 표시됩니다. A = Time(0) Debug Hex2 A,Cr ==== 사용예 ====
Const Device =CT1720
Dim I As Byte
Timeset 0,0 '초
Timeset 1,&H24 '분
Timeset 2,&H9 '시
Timeset 3,&H21 '일
Timeset 4,&H6 '요일
Timeset 5,&H4 '월
Timeset 6,&H5 '연도
Do
I = Time(6)
Debug "200",Hex I,"년 "
I = Time(5)
Debug Hex2 I,"월 "
I = Time(4)
Select Case I
Case 0
Debug "일요일 "
Case 1
Debug "월요일 "
Case 2
Debug "화요일 "
Case 3
Debug "수요일 "
Case 4
Debug "목요일 "
Case 5
Debug "금요일 "
Case 6
Debug "토요일 "
End Select
I = Time(3)
Debug Hex2 I,"일 "
I = Time(2)
Debug Hex2 I,"시 "
I = Time(1)
Debug Hex2 I,"분 "
I = Time(0)
Debug Hex I,"초",cr
Delay 1000
Loop
==== 시스템 클록을 사용하는 실시간정보 ======
RTC 칩이 없는 모델(예: CB210, CB220, CB280, MSB6xx)에서는 TIME, TIMESET 명령어로, 아래 표와 같이 10 번지 이후를 사용합니다.
시스템 클록은 RTC 칩보다 정확하지 않으며 오차가 있을 수 있습니다. 그리고 밧데리백업이 불가능하여, 전원이
없을 때 시간이 자동으로 증가되는 것이 불가능합니다.
^Address ^Returning Value ^Range^
|10 |Seconds |0 to 59|
|11 |Minutes |0 to 59|
|12 |Hours |0 to 65535|
|13 |Continuous Seconds|0 to 65535|
10 (초)번지는 1 초마다 1 씩 증가되어, 60 이 되면 11 (분)번지가 1 증가됩니다. 이후 60 분이 되면 12(시)번지가
1 증가됩니다. 12(시)번지는 65535 까지 계속 증가되다가, 65535 이후에는 다시 0 이 됩니다. 이 번지의 값은 파
워온시 0 이 되며, TIMESET 명령을 사용해서 다른 값을 써넣을수도 있습니다. 이 번지의 내용은 RTC 칩과는 달
리, 전원OFF 상황에서 계속 갱신되지 않습니다.
또한 시스템 클록RTC (번지 10~13) 의 내용은 앞에서 설명한 번지의 내용처럼 BCD 코드로 기록되어 있지 않고,
바이너리값 그대로 기록되어 집니다. 따라서 유저는 BCD to Binary 변환을 할 필요가 없습니다.
시스템클록 RTC (번지 10~13) 의 내용은 시스템 클록으로부터 갱신되어지는 정보이며, 실제시간과 약간의 오차
가 발생할 수 있으며, 앞에서 설명한 RTC 칩의 내용과는 일치하지 않습니다.
다음은 샘플 프로그램입니다.
Const Device = CB405
Dim i As Integer
Cls
Timeset 10,58
Timeset 13,254
Do
i = Time(10)
Debug Goxy,0,0,dec4 i,Cr
Debug Goxy,0,1,dec4 Time(13)
Delay 100
Loop
13 번지는 10 번지와 같이 1 초마다 1 씩 증가됩니다. 10 번지는 60 초가 되면다시 0 으로 리셋되지만, 13 번지는
65535 가 될때까지 계속 증가됩니다. 65535 에서 1 초가 더 지나면, 다시 0 이 됩니다. 연속적인 경과시간을 초단
위로 알고 싶을 때 사용합니다.
[[cubloc:|명령어 목록으로 가기]]