logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[atmega8][bascom][siemens sl45i] "szuka sieci"

arkadius 13 Paź 2009 13:45 1787 4
REKLAMA
  • #1 7122948
    arkadius
    Poziom 12  
    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?

    
    $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.
  • REKLAMA
  • REKLAMA
  • #3 7123197
    arkadius
    Poziom 12  
    To chyba ostatni z pomysłów jakie mam. Wsadzę Zenera 3V3 pomiędzy RX telefonu a TX uP. Jeszcze tego nie testowałem bo nie mam diody pod ręką, ale jeśli koaże się że to nie to, to już kompletnie nie mam pojęcia co jest.

    pozdrawiam
    A.W.
  • REKLAMA
  • #5 7127651
    arkadius
    Poziom 12  
    Witam,

    wlasnie jestem po udanych testach :) Przyczyna - poziomy napięć. Pomogło wstawienie Zenera i opornika 300 ohm.

    pozdrawiam
    A.W.
REKLAMA