Mam następujący problem. Chcę odczytać z telefonu Siemens C35 (oraz S35) datę i godzinę a następnie wyświetlić je na LCD. Najpierw próbuję odczytać "surowe" dane za pomocą kodu:
w odpowiedzi na lcd dostaję:
robię jednocześnie podgląd na Hyper Terminalu i otrzymuję:
Do tego momentu wszystko zgodne z logiką.
Następnie usuwam średnik z linii:
i zaczynają się jaja.
Oczywiście echo z telefonu wyłączone, więc nie wraca "AT+CCLK?", tylko odpowiedź na Hyper Terminalu w postaci:
a na LCD najpierw ATE0 i dalej nic. Wynika to z tego, że przed odpowiedzią czyli ciągiem znaków +CCLK: "08/12/15,18:50:26" jest pusta linia, czyli coś jakby wstawia enter przed wysłaniem odpowiedzi. Kombinowałem już z usuwaniem średników i Chr(13) i nic.
Podpowiedzcie mi gdzie popełniam błąd. Zaznaczam, że od dwóch tygodni próbuję coś znaleźć na forum ,ale nic mi nie pomogło, nawet kombinacje z Inkey.
Telefon z uC mam podłączony na jednej linii poprzez rezystor i diodę 3V3 (6 ->3) a na drugiej (5->2) bezpośrednio
P.S. Zumek proszę Cię, zanim usuniesz temat daj mi najpierw ostrzeżenie
Pozdrawiam.
$regfile = "m8def.dat"
$crystal = 8000000
$baud = 19200
Config Lcd = 16 * 1a
Config Lcdpin = Pin , Rs = Portc.3 , E = Portc.1 , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2
Config Spi = Hard
Config Serialin = Buffered , Size = 32
Dim Todczyt As String * 16
Dim Ttemp As String * 16
Dim Kod As String * 16
Dim Bufor As Byte
Declare Sub Oproznij_bufor
Enable Interrupts
Cls
Lcd "Odczyt czasu v.2"
Cursor Off
Wait 1
'Print "ATE0" ; Chr(13)
Do
Print "AT+CCLK?" ; Chr(13) ;
Gosub Oproznij_bufor
Input Todczyt Noecho
Ttemp = Mid(todczyt , 1 , 16 )
Cls
Lcd Ttemp
Wait 2
Cls
Wait 1
Loop
Oproznij_bufor:
Do
Kod = Inkey()
Bufor = Ischarwaiting()
Loop Until Bufor = 0
Return
w odpowiedzi na lcd dostaję:
AT+CCLK?robię jednocześnie podgląd na Hyper Terminalu i otrzymuję:
AT+CCLK?
+CCLK: "08/12/15,18:40:57"
OK Do tego momentu wszystko zgodne z logiką.
Następnie usuwam średnik z linii:
'Print "ATE0" ; Chr(13)i zaczynają się jaja.
Oczywiście echo z telefonu wyłączone, więc nie wraca "AT+CCLK?", tylko odpowiedź na Hyper Terminalu w postaci:
+CCLK: "08/12/15,18:50:26"
OKa na LCD najpierw ATE0 i dalej nic. Wynika to z tego, że przed odpowiedzią czyli ciągiem znaków +CCLK: "08/12/15,18:50:26" jest pusta linia, czyli coś jakby wstawia enter przed wysłaniem odpowiedzi. Kombinowałem już z usuwaniem średników i Chr(13) i nic.
Podpowiedzcie mi gdzie popełniam błąd. Zaznaczam, że od dwóch tygodni próbuję coś znaleźć na forum ,ale nic mi nie pomogło, nawet kombinacje z Inkey.
Telefon z uC mam podłączony na jednej linii poprzez rezystor i diodę 3V3 (6 ->3) a na drugiej (5->2) bezpośrednio
P.S. Zumek proszę Cię, zanim usuniesz temat daj mi najpierw ostrzeżenie