PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mega644 + urxc problem



BlaueLed
23.09.2008, 22:21
Hallo,

ich habe folgende Routine zum einlesen des UART. Ausgelöst wird das ganze durch "On URXC Empfangesms".



'--------
'--- 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



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.



Open "sms.txt" For Append As #3
Write #3 , Header , Sms
Close #3


Im Hintergrund läuft Timer1 im Sekundentakt. Als Controller benutze ich den Mega644P. Das ändern des HWstack oder Swstack oder framesize hat nichts gebracht.

Ich komme einfach nicht weiter und vielleicht kann mir ja jemand von Euch helfen, mein problem zu lösen.

danke
Kay