Witam,
postanowiłem trochę pobawić się z odczytywaniem danych z telefonu za pomocą atmegi. Docelowo ma to być prosty netmonitor. Niestety napotkałem przeszkodę z ktorą nie mogę sobie poradzić.
Telefon podłączony jest bezpośrednio do linii TX,RX i GND procesora, komunikacja jest ( sprawdzalem wybierjaąc numer). Przez chwilę wszystko dziala OK, ale po kilku sekundach telefon gubi sieć i wyświetla "Szukam sieci". Ponadto nie mogę nic z niego odczytać (poniżej listing do odczytu IMEI).
Nie jest to wina kabli czy telefonu bo sprawdzałem na trzech różnych telefonach i za każdym razem jest to samo.
Czy ma ktośmoże pomysł co robię źle?
Za wszelkie sugestie będę wdzięczny.
pozdrawiam
A.W.
postanowiłem trochę pobawić się z odczytywaniem danych z telefonu za pomocą atmegi. Docelowo ma to być prosty netmonitor. Niestety napotkałem przeszkodę z ktorą nie mogę sobie poradzić.
Telefon podłączony jest bezpośrednio do linii TX,RX i GND procesora, komunikacja jest ( sprawdzalem wybierjaąc numer). Przez chwilę wszystko dziala OK, ale po kilku sekundach telefon gubi sieć i wyświetla "Szukam sieci". Ponadto nie mogę nic z niego odczytać (poniżej listing do odczytu IMEI).
Nie jest to wina kabli czy telefonu bo sprawdzałem na trzech różnych telefonach i za każdym razem jest to samo.
Czy ma ktośmoże pomysł co robię źle?
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.6 , Db5 = Portd.5 , Db6 = Portb.7 , Db7 = Portb.6 , E = Portd.7 , Rs = Portb.0
Const Sizebuff = 40
Config Serialin = Buffered , Size = Sizebuff 'konfiguracja bufora odbioru
Dim Bajt As Byte
Dim Odb_txt As String * 40 'odb_txt do odbioru danych z telefonu
Dim Test As Byte
Enable Interrupts 'uruchom przerwania
Cls 'czyszczenie LCD
Wait 1 'czekaj 1 sek.
Print "ATE0" 'wyłącz echo
'---------------------------------
'Program główny
Do
Wait 1
Cls
Lcd "wysylam zapytanie"
Wait 2
Print "AT+CGSN" ; Chr(13) 'zapytanie o imei
Wait 1
Cls
Lcd "zapytanie wyslane"
Wait 1
Cls 'zaczekajmy moment
If Bufspace(1) <> 40 Then 'jeżeli coś jest w buforze
Gosub Dane 'przejdź do programu dane
End If
Loop
End 'koniec programu
'---------------------------------
'Podprogram odbierania danych
Dane:
Odb_txt = "" 'wyczyść odb_txt
While Bufspace(1) < Sizebuff 'dopuki jest coś w buforze
Bajt = Inkey() 'pobierz znak
If Bajt <> 13 And Bajt <> 10 Then 'jeżeli nie jest to znak CR lub LF
Odb_txt = Odb_txt + Chr(bajt) 'dodaj znak do Odb_txt
Else 'w przeciwnym wypadku
Odb_txt = Odb_txt + " " 'zastąp je spacją
End If
Wend
Lcd Odb_txt
Wait 3
Return
Za wszelkie sugestie będę wdzięczny.
pozdrawiam
A.W.