- 12V Akku mit 280 Ah bauen         
Seite 3 von 3 ErsteErste 123
Ergebnis 21 bis 29 von 29

Thema: RS-232 problem. Programm stürzt abundzu ab. Bitte um Hilfe!

  1. #21
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Anzeige

    E-Bike
    kannst du nicht mal deine Dims einstellen. Dann könnte man dein Programm mal kompilieren
    Das Programm ist echt endlos lange drum habe ich es gekürzt sonst hätte sich das keiner angetan zu lesen. Liegt auch wohl daran, dass es nicht perfekt programmiert ist.

    Ich werde eure Tipps mal alle durchtesten und dann bescheid geben. Ich bedanke mich schonmal für eure tolle Hilfe.

  2. #22
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Fehler gefunden! Es war ein Hardwarefehler. Eine zulange Resetleitung (trotz Pullup und 100nF Kondensator auf GND) war für die "Abstürze" verantwortlich. Es besteht nur weiterhin das problem mit dem Puffer. Bei zulangen Befehlen startet das programm neu.

    Gibts auch ne Möglichkeit über den Watchdog keinen Reset auszulösen sondern in eine Sub zu springen? Dort könnte ich dann mit "Clear Serialin" den Puffer löschen. Wäre aber nur eine Zwischenlösung. Möchte das schon anders lösen mit dem Pufferüberlauf.

  3. #23
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Ich habe mir den Code nicht angesehen. RS232 frage ich über IsCharWaiting ohne IRQ ab. Wenn ein Zeichen wartet, wird geprüft, ob es ein chr(13) ist, oder nicht. Wenn nicht dann an den Eingangsstring angehangen und wenn ja, dann wird der Eingangsstring verarbeitet. chr(10) ignoriere ich bei RS232 ganz gern... Hier mal ein Auszug aus einem meiner älteren Projekte ( X300T Frontend):

    Code:
    Config Serialin = Buffered , Size = 88
    Dim B As Byte 
    Dim Elaenge As Byte
    Dim Seingang As String * 100
    .
    .
    .
    Do
    .
    .
    .
       If Ischarwaiting() = 1 Then
            Gosub Empfangen
    
       End If
    Loop
    End
    
    Empfangen:
    
    
    
       B = Inkey()
       If B >= 13 Then
             If B = 13 Then
                Gosub Auswerten
             Else
                If Len(seingang) < 78 Then
                   Seingang = Seingang + Chr(b)
                   Elaenge = Elaenge + 1
                Else
                   Seingang = ""
                   Elaenge = 0
                  ' Print "error"
                End If
             End If
       End If
    
    Return
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  4. #24
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Ich glaube das ist genau was ich brauche. Danke! Ich werde das gleich mal in meinen Code integrieren.

  5. #25
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Verstehe den Code soweit. Mir ist nur nicht klar was die Variable "Elaenge" genau macht.

  6. #26
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.01.2006
    Beiträge
    4.555
    So wie ich das sehe wird damit die Anzahl empfangener Bytes
    gezählt und bei >79 also bei 80 auf Null gesetzt?

    Gruß Richard

  7. #27
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Das wird schon mit "seingang" gemacht damit es keinen Überlauf gibt so wie ich das verstehe. "Ealaange" wird auch nirgends ausgewertet sondern nur auf 0 gesetzt.

  8. #28
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    18.05.2007
    Ort
    Berlin
    Alter
    53
    Beiträge
    765
    Das ist ein Überbleibsel und kann ignoriert werden...
    Wenn das Herz involviert ist, steht die Logik außen vor! \/

  9. #29
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.03.2006
    Beiträge
    361
    Läuft super bei mir! Danke für den code. Endlich keine abstürze mehr bei zulangen befehlen.

Seite 3 von 3 ErsteErste 123

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress