Code:
'**********************************************************
'Compiler : BASCOM-AVR
'Hardware : GPS-Maus an RS232
' LC-Display 16*4
'Chip type : ATMEGA8/MyAVR
'**********************************************************
$regfile = "m8def.dat"
$crystal = 3686400
$baud = 9600
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Lcd = 16 * 4
Initlcd
Cursor Off
Cls
'**********************************************************************
'so sieht ein empfangener Datenblock aus :
'
'$GPRMC,142654.895,A,5305.9338,N,00849.2502,E,0.00,260.88,160206,,,A*6F
'$GPRMC,191410,A,4735.5634,N,00739.3538,E,0.0,0.0,181102,0.4,E,A*19
' ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
' | | | | | | | | | |
' | | | | | | | | | Prüfsumme
' | | | | | | | | |
' | | | | | | | | Modus (A,D,E,N,S)
' | | | | | | | |
' | | | | | | | magnetische
' | | | | | | | Deklination 0.4° E
' | | | | | | |
' | | | | | | Datum: 18.11.02
' | | | | | |
' | | | | | wahrer Kurs (ohne Bewegung 0)
' | | | | |
' | | | | Geschwindigkeit über Grund (Knoten)
' | | | |
' | | | 007° 39.3538' östliche Länge
' | | |
' | | 47° 35.5634' nördliche Breite
' | |
' | Empfängerwarnung, A = Daten OK, V = Warnung
' |
' Uhrzeit der Positionsbestimmung: 19:14:10 UTC-Zeit
'**********************************************************************
Dim A As Byte
Dim Datenstrom As String * 71
Dim Block As String * 6
Dim Stunde As String * 2
Dim Minute As String * 2
Dim Sekunde As String * 2
Dim Tag As String * 2
Dim Monat As String * 2
Dim Jahr As String * 2
Start:
Do
Do
A = Inkey() 'warte auf Zeichen "$"
If A = 36 Then Input Datenstrom 'lese kompletten datenstrom
Block = Mid(datenstrom , 1 , 5) '5 Zeichen nach "$"einlesen
Loop Until Block = "GPRMC" 'frage immer wieder bis Zeichenfolge "GPMRC" kommt, gehe dann weiter
Stunde = Mid(datenstrom , 7 , 2) 'nach 7 Zeichen die folgenden zwei Zeichen
Minute = Mid(datenstrom , 9 , 2)
Sekunde = Mid(datenstrom , 11 , 2)
Tag = Mid(datenstrom , 57 , 2)
Monat = Mid(datenstrom , 59 , 2)
Jahr = Mid(datenstrom , 61 , 2)
Locate 1 , 1
Lcd "Uhrzeit " ; Stunde ; ":" ; Minute ; ":" ; Sekunde
Locate 2 , 1
Lcd "Datum " ; Tag ; "." ; Monat ; "." ; Jahr
Loop
End
Lesezeichen