this code pulls time from the NIST servers, works but needs tweaks and is dirty
Posted by William Blaze at April 16, 2005 07:52 PM | TrackBackdataByte var byte
dataByte2 var byteinit 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-invertedi var byte ' counter
j Var Byteled1 VAR portC.4
led2 VAR portC.3High 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