April 16, 2005

Timecode

this code pulls time from the NIST servers, works but needs tweaks and is dirty


dataByte var byte
dataByte2 var byte

init Var Byte
init = 0


loginTime Var Byte(80)
sendTime Var Byte(17)


h2 VAR BYTE
m2 Var BYTE
s2 Var BYTE


h VAR BYTE(2)
m Var BYTE(2)
s Var BYTE(2)


ndeg Var Word
nmin Var word


dirt var Byte
dirt = 0


tx var portc.6
rx var portc.7
xportRx var portc.0
xportTx var portc.1
xportDTR var portc.2
inv9600 con 16468 ' baudmode for serin2 and serout2: 9600 8-N-1 inverted
non9600 con 84 ' baudmode for serin2 and serout2: 9600 8-N-1 non-inverted

i var byte ' counter
j Var Byte

led1 VAR portC.4
led2 VAR portC.3

High led2

Pause 1000 ' Wait a second at startup

serout2 tx, inv9600, ["starts", 13, 10]

main:
serout2 tx, inv9600, ["time loop starts", 13, 10]
SEROUT2 xporttx, non9600, ["C129.6.15.28/13", 10]
serin2 xportrx, non9600, 2000, main, [wait("5"), str loginTime\35]
pause 200
serout2 tx, inv9600, ["passed serin", 13, 10]
for i = 0 to 17
sendTime[i] = loginTime[i + 14]
next i
for j = 0 to 1
h[j] = loginTime[j + 14]
next j
for j = 0 to 1
m[j] = loginTime[j + 17]
next j
for j = 0 to 1
s[j] = loginTime[j + 20]
next j
h2 = (h[0]-48)*10 + (h[1]-48)
m2 = (m[0]-48)*10 + (m[1]-48)
s2 = (s[0]-48)*10 + (s[1]-48)
ndeg = (h2 * 60 / 4) + (m2 / 4)
nmin = ((m2 // 4) * 60 / 4) + (s2 / 4)
'serout2 xporttx, non9600, ["send all ", DEC ndeg ," degrees ", DEC nmin, " minutes ", 13, 10]
'serout2 xporttx, non9600, ["send ", STR nameArray, " " , str sendTime\17, "---", DEC ndeg ,"deg ", DEC nmin, "min", 13, 10]
serout2 tx, inv9600, [str sendTime\17, 13, 10]

goto main

Posted by William Blaze at April 16, 2005 07:52 PM | TrackBack