- 12V Akku mit 280 Ah bauen         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Pollin Display, Softwareproblem/Darstellung

  1. #11
    Anzeige

    Powerstation Test
    Hat sich erstmal erledigt, habs hinbekommen

  2. #12
    So ich hab jetzt doch ein Problem:
    ich verwende folgenden Code um Daten von der seriellen zu empfangen:
    Code:
     void usart_gets( char* Buffer, uint8_t MaxLen )
        {
          uint8_t NextChar;
          uint8_t StringLen = 0;
    
          NextChar = usart_getc();         // Warte auf und empfange das nächste Zeichen
    
                                          // Sammle solange Zeichen, bis:
                                          // * entweder das String Ende Zeichen kam
                                          // * oder das aufnehmende Array voll ist
          while( NextChar != '\n' && StringLen < MaxLen - 1 ) 
          {
            *Buffer++ = NextChar;
            StringLen++;
            NextChar = usart_getc();
          }
    
                                          // Noch ein '\0' anhängen um einen Standard
                                          // C-String daraus zu machen
          *Buffer = '\0';
        }
    Da liest er solange Zeichen ein bis "\n" kommt.
    Die Steuerung die von der ich Daten empfange sendet aber nicht ein solches Endzeichen dort hört der Datensatz einfach mit der Checksumme ihrer Daten auf. Wie kann ich das jetzt gestalten, das er mir den Datensatz einliest und ihn mir in meiner Variable daten zurück gibt.
    Jetzt wartet er ja vergeblich bis mal zufällig so ein Steuerzeichen kommt

  3. #13
    Ich habe mich geirrt, die Steuerung sendet die Daten ohne irgendeinen abschluss, hört nach einen Datensatz einfach auf und will dann die Antwort haben.
    Wie bring ich nun meiner Routine bei das der Datensatz zu Ende ist?

    Vielleicht durch eine definierte Wartezeit? Wie schreib ich das?

  4. #14
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    22.11.2005
    Ort
    Braunschweig
    Alter
    47
    Beiträge
    685
    Moin!
    Wenn die Datensätze immer gleich lang sind, kannst Du evtl. enfach mitzählen, ansonsten leiße sich das Ganze evtl. über ein Timeout lösen, wenn die Lücke zwischen zwei Datensätzen lang genug ist.
    MfG
    Volker
    Meine kleine Seite
    http://home.arcor.de/volker.klaffehn
    http://vklaffehn.funpic.de/cms
    neuer Avatar, meine geheime Identität

  5. #15
    Kannst du mir sagen wie ich das mit den Timeouts hinbekomme? Die Datensätze sind nämlich unterschiedlich lang.

  6. #16
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Beiträge
    2.731
    Hallo,

    weisst Du wie die Datensätze aufgebaut sind, also was die Daten bedruten ?
    Evtl. ist darin dann die länge enthalten.
    Das muss aber nicht unbedingt heissen, das die genaue länge drin vorkommt, sondern das der Empfänger einfach wissen muss wann was wielange sein sollte.
    zB wenn das 1.Byte einen Befehl darstellt, ist damit schon festgelegt wieviel danach noch zu kommen hat.

  7. #17
    Benutzer Stammmitglied Avatar von KR-500
    Registriert seit
    26.12.2007
    Alter
    29
    Beiträge
    91
    HI

    das selbe problem hatte ich auch mit HTerm. Ich hab dann einfach die Zeichen gezählt aber du kannst die strings einfach z.B. immer mit ";" beenden
    dann schreibst du statt:
    while( NextChar != '\n' && StringLen < MaxLen - 1 )
    einfach:
    while( NextChar != ';' && StringLen < MaxLen - 1 )

    KR-500

  8. #18
    In Hterm kann ich ja einstellen das er die Zeichenkette mit \n abschließt. Aber das sollte nur zum probieren sein ob die Routine so erstmal funktioniert. Aber ich kann der Steuerungnicht sagen das sie da ein zeichen dranpacken soll.

    Also ich weis was die Zeichen bedeuten aber ne Checksumme kann ich da nicht finden, am besten also über nen Timeout aber wie geht das?
    Hier mal ein Auszug aus den Daten:
    Senden:4d 41 01 01 00 90 MA...
    Empfangen: e9 4d 41 0c 49 00 1c 07 2b 5a 75 73 74 61 6e 64 éMA.I...+Zustand

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test