Warten bis String A eine gewisse Länge hat (BASCOM)

#1426839
Lesenswert?

Guten Tag

Ich habe ein problem weshablb ich hier schreibe^^

Also:

Ich bekomme einen String von der länge 81 über die UART-Schnittstelle. 
(mit Interruupt.

Wie kann ich mein Programm warten lassen (also das es nichts anderes 
macht ausser die Interrupts und halt warten bis der String die Länge 81 
hat?)

Hier mein Code

Do
D = Right(a , 1)
If D = Chr(010) Then
      If Len(a) = 17 Then
      B = Right(a , 14)
      B = Left(b , 4)
         If B = "CMTI" Then
         Cls
         Lcd "CMTI"
         A = ""
         Print "at+cmgr=1"
      Do
      If Len(a) = 81 Then
      Until Len(a) = 81
      A = Right(a , 9)
      A = Left(a , 1)
      Cls
      Lcd A
      Do
      Print A;
      Loop
      Wait 1

End If
End If
End If
End If
Loop

(nur die wichtige Stelle...)

Zur Erklärung:

Der Atmega wird über einen 17 Zeichen langen String darüber informiert, 
dass es Neuigkeiten gibt. Dieser String zeichnet sich durch nen LF am 
Ende aus.
Um die Neuigkeiten zu erhalten, schickt er dann den AT-Command 
"at+cmgr=1" und erhält darauffolgend den String, allerdings soll er 
warten bis der vollständig angekommen ist (81 Zeichen)

Oder gibts fürs ganze noch ne schönre Lösung?

Grüsse


habs glaub geschafft jungs, danke trotzdem!
#1426850
Lesenswert?

dim laenge as byte
Do
D = Right(a , 1)
If D = Chr(010) Then
      If Len(a) = 17 Then
      B = Right(a , 14)
      B = Left(b , 4)
         If B = "CMTI" Then
         Cls
         Lcd "CMTI"
         A = ""
         Print "at+cmgr=1"
      Do
      If Len(a) = 81 Then
      Until Len(a) = 81   <- ???????????????
      A = Right(a , 9)
      A = Left(a , 1)
      Cls
      Lcd A
      Do
      Print A;
      Loop
      Wait 1

End If
End If
End If
End If
laenge = len(a)
Loop until laenge = 81


viel erfolg

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren