Code:
'BETHR
'''''''''''''' INCLUDES ''''''''''''''''''''''''''''''''''''
DEFINE OSC 4
INCLUDE "DT_INTS-18.bas"
INCLUDE "ReEnterPBP-18.bas"
INCLUDE "Elapsed_INT-18.bas"
INCLUDE "LCDPICDEM2.BAS" ' it runs on PIDEM2 PLUS Board
DEFINE HSER_TXSTA 24h ' BRGH=1
DEFINE HSER_RCSTA 90h
DEFINE HSER_CLROERR 1 ' Hser clear overflow automatically
DEFINE HSER_SPBRG 51
''''''''''''' VARS ''''''''''''''''''''''''''''''''''''
led var Portb.2
timeh var byte
timem var byte
times var byte
day var byte
mon var byte
yr var byte
stat var byte
gps var Portb.1
TRISB.2 = 0
TRISB.0 = 1
Adcon1 = $07
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
init:
ASM
INT_LIST macro ; IntSource, Label, Type, ResetFlag?
INT_Handler TMR1_INT, _ClockCount, PBP, yes
endm
INT_CREATE
ENDASM
@ INT_ENABLE TMR1_INT
Gosub ResetTime
Gosub StartTimer
hours = 12 'after reset we always star @12:00:00
Start:
lcdout $fe,1,"GPS Clock "
Pause 500
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Main:
While 1
'do something [ something more useful than this :-) ]
While (portb.0=1)
Toggle led
Lcdout $fe,2,"Date : ",dec2 day,47,dec2 mon,47,dec2 yr
Lcdout $fe,$c0,"Time : ",dec2 hours,":",dec2 minutes,":",dec2 seconds
Pause 200
Wend
' if i press rb0 btn update my RTC
Gosub Update_rtc
Wend
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''' SUBS ''''
Update_rtc:
'look 4 stream
lcdout $fe,1,"Updating..."
Hserin 500,no_gps,[WAIT("MC,"),dec2 TIMEH,dec2 TIMEM,dec2 TIMES,SKIP 5,_
STAT,skip 30,dec2 day,dec2 mon,dec2 yr]
'check 4 Valid GPS if so, then update my RTC
if stat = "A" then
hours=timeh - 5 : minutes = timem: seconds = times
'no gps so don't update
else
lcdout $fe,1,"Bad Fix" : pause 500
endif
return
'np gps or bad sintax
no_gps:
lcdout $fe,1,"No Gps stream" : pause 500
return
''' END SUBS ''''
I've had to replace my broken LCD also !!
Bookmarks