Witam
Wzorując się na jednym z przykładów chciałem wyświetlać dane z GPS.
GPS działa poprawnie, wyświetla dane w oknie terminala.
Podłączenie TX GPS z Rx AtMega nie powoduje żadnej reakcji
Zacząłem od wyświetlania czasu, bo najłatwiejszy mi się wydawał.
Jako, że nic się nie dzieje, wyświetlam wartość kilku zmiennych, żeby zobaczyć w czym problem. Jedynie wartość zmiennej Ramka jest 0, reszta zmiennych jest nie wyświetlana wcale. Nie wiem, czy dobrze użyłem instrukcji Inst.
Wzorując się na jednym z przykładów chciałem wyświetlać dane z GPS.
GPS działa poprawnie, wyświetla dane w oknie terminala.
Podłączenie TX GPS z Rx AtMega nie powoduje żadnej reakcji
$regfile = "m32def.dat"
$crystal = 8000000
$baud = 9600 ' predkość transmisji
$hwstack = 64 ' rozmiar stosu sprzętowego
$swstack = 64 ' rozmiar stosu programowego
$framesize = 64 ' rozmiar ramki
'********************* Konfiguracja wyświetlacza
Config Lcdbus = 4
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.2 , Rs = Portc.3
Config Lcd = 24 * 2
'********************* Deklaracje zmiennych
Dim Rs As String * 82
Dim Gps As Byte
Dim A1 As String * 10
Dim A2 As String * 10
Dim A3 As String * 10
Dim Ramka As Byte
Dim Ramka1 As String * 80
Dim Czas As String * 10
'********************* Deklaracje Aliasów
Lcd1 Alias Portd.3
Lcd2 Alias Portd.7
Lcd3 Alias Portb.3
'********************* Wartości początkowe
Lcd1 = 1
A1 = "$GPGGA"
A2 = "$GPGSV"
A3 = "$GPRMC"
Cursor Off
Cls
Do
Cls
Locate 2 , 1
Lcd Rs
Locate 1 , 1
Lcd Czas
Locate 1 , 13
Lcd Ramka
Locate 2 , 13
Lcd Ramka1
Do
Gps = Inkey()
If Gps = 13 Then Exit Do ' jeśli koniec linii
Rs = Rs + Chr(gps) ' utwórz ciąg
Loop
'***************************** szuka ramki
Ramka = Instr(rs , A1) ' szukaj w zmiennej Rs ciągu A1
Ramka1 = Mid(rs , Ramka , 6) ' zwraca fragment tekstu ze zmiennej Rs
'***************************** szuka ramki odczytuje z ramki
If Ramka1 = "$GPGGA" Then ' jesli zmienna Ramka1 =
"$GPGGA" wtedy
Czas = Mid(rs , 8 , 6) ' zwróć wartość 6 kolejnych
pól licząc od znaku 8-go z ciągu Rs
End If
Waitms 199
Rs = ""
Loop
End
Zacząłem od wyświetlania czasu, bo najłatwiejszy mi się wydawał.
Jako, że nic się nie dzieje, wyświetlam wartość kilku zmiennych, żeby zobaczyć w czym problem. Jedynie wartość zmiennej Ramka jest 0, reszta zmiennych jest nie wyświetlana wcale. Nie wiem, czy dobrze użyłem instrukcji Inst.