Hallo,
ich habe folgende Routine zum einlesen des UART. Ausgelöst wird das ganze durch "On URXC Empfangesms".
So funktioniert auch alles wie es soll. Sobald ich aber die werte in der datei sms.txt speichern will, dann hängt sich der AVR auf und ich kann nichts mehr machen. Zum speichern benutze ich AVR-DOS. Sobald ich hinter lcd "SMS empfangen" diesen code einfüge, dann hängt sich der AVR auf.Code:'-------- '--- Modemabfrage --- Empfangesms: Getline Header ' wait for a modem response I = Instr(header , ":") ' look for : If I > 0 Then 'found it Stemp = Left(header , I) Select Case Stemp Case "+CMTI:" : Showsms Header ' we received an SMS ' hanle other cases here End Select End If Return '--- daten einlesen --- Sub Getline(s As String) S = "" Do B = Inkey() Select Case B Case 0 Case 13 Case 10 : If S <> "" Then Exit Do Case Else S = S + Chr(b) End Select Loop End Sub '--- puffer füllen --- Sub Flushbuf() Waitms 100 Do B = Inkey() Loop Until B = 0 End Sub '--- SMS einlesen --- Sub Showsms(s As String ) Wait 1 Print "AT+CMGR=1" Getline Header Getline Sms Smscount = Split(header , Ar(1) , ",") Handynummer = Mid(ar(2) , 2 , 14) Datumsms = Mid(ar(4) , 2 , 9) Zeitsms = Mid(ar(5) , 1 , 8) Lastnummer = Handynummer Lastdatum = Datumsms Lastzeit = Zeitsms Lastfunktion = Sms Bcount = Split(sms , Smsa(1) , ",") Smskunde = Smsa(1) Smsfunktion = Smsa(2) Smskontrolle = Smsa(3) Locate 12 , 2 Lcd "SMS empfangen" 'Open "sms.txt" For Append As #3 'Write #3 , Header , Sms 'Close #3 End Sub
Im Hintergrund läuft Timer1 im Sekundentakt. Als Controller benutze ich den Mega644P. Das ändern des HWstack oder Swstack oder framesize hat nichts gebracht.Code:Open "sms.txt" For Append As #3 Write #3 , Header , Sms Close #3
Ich komme einfach nicht weiter und vielleicht kann mir ja jemand von Euch helfen, mein problem zu lösen.
danke
Kay
Lesezeichen