Serielle Datenübertragung rätselhaft

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Serielle Datenübertragung rätselhaft

      Hallo Forumsmitglieder,
      mein Name ist Andreas,
      seit längerem lese ich hier als "Geist" mit und habe für meine kleinen Projekte immer eine Lösung gefunden.
      Jetzt aber bin ich mit meinem "Latein" am Ende; wahrscheinlich ein saublöder Denkfehler.

      Bei meinem Projekt möchte ich die Steuerung per Computer mit einem Atmega ersetzen.
      Es werden seriell Bytes übertragen, z.B. Hex 86, Hex 11, Hex 06, Hex F9.
      Mit meinem Atmega habe ich Richtig 134 17 6 249 mitgeschnitten.

      Soweit alles klar, aber will ich jetzt dise Bytes senden kommt folgendes an: 134 68 80 13 255 ?

      Kürze ich die Übertragung stelle ich fest das immer der erste Wert stimmt.
      Wie ihr seht ist das eigentlich das Beispielprogramm.

      MfG
      Andreas
      Dateien
      • fern1.bas

        (1,44 kB, 18 mal heruntergeladen, zuletzt: )
    • Hallo,
      die Baudrate und sonstige Einstellung sind gleich: 4800 Baud, 1 Stop und 8 Datenbit.

      Ich habe zuerst mit der (baugleichen) Platine den seriellen Verkehr abgehöhrt und das dann
      bei meinem Senderprogramm auch.
      Ich bitte um Entschuldigung die Programme sind erst mal nur testweise entstanden.
      MfG
      Andreas
      Dateien
      • Empfang-E2.bas

        (1,5 kB, 13 mal heruntergeladen, zuletzt: )
    • Ich sag' mal ganz frech, deine LCD-Ausgabe ist zu langsam. Verteile mal beim Sender deine 4 bytes auf 4 Printanweisung und mach mal eine kleine Pause dazwischen.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Der Sender sendet immer gleichmäßig, das wird durch die baud-Rate eingestellt. Wenn das erste Zeichen empfangen wird, dann wird es an dein display geschickt und da angezeigt. Derweil kommt das nächste Zeichen an, das waitkey ist aber möglicherweise noch nicht dran, weil das LCD noch malt. Dann fehlen vielleicht schon paar Flanken des Signals und dann passt nix mehr. Vor deinem ersten byte, das gesendet wird, hast du 5 Sekunden Pause drin. Da ist waitkey natürlich 'bereit'. Probier einfach mal deine Übertragung mit Pausen zwischen den einzelnen bytes.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Der Sender sendet einfach, er kümmert sich um nix. Ob ein Empfänger dran ist, oder nicht, ob der Empfänger mit kommt oder nicht, ist dem Sender alles egal. Du kannst deine Situation aber deutlich verbessern, wenn du einen Empfangspuffer verwendest.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Hallo,
      Waitkay ist wohl nicht optimal für dein Vorhaben.
      Kann natürlich wieder sein ich hab es nicht geschnallt warum der Empfänger kein Protokoll empfangen soll(auch wenn es nur ein Byte ist)
      Mit Uart Protokoll gibt es doch keine Zeitprobleme mit LCD- Anzeige.
      Rattert doch im Hintergrund. Natürlich nur wenn es so gewollt ist.
    • Na ja,
      wohlgemerkt ich will etwas mit dem Atmega unter Bascom steuern was (noch) über PC gesteuert wird.
      Bei einem Befehl weiß ich aber ganz genau was gesendet wird und kann das Ergebnis sofort sehen.

      Werde mich nachher noch mal hinsetzen, gibt ja schonmal eine gewisse Übereinstimmung.

      MfG
      Andreas