-         
+ Antworten
Ergebnis 1 bis 6 von 6

Thema: Serielle Schnittstelle im Hintergrund?

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.03.2004
    Beiträge
    137

    Serielle Schnittstelle im Hintergrund?

    Ich möchte gern über die serielle Schnittstelle Steuerdaten für meinen ATMEGA empfangen. Gibt es ne möglichkeit das die Daten im Hintergrund in eine Variable geschoben werden, ohne das ich das Hauptprogramm extra unterbrechen muss?

    Gruss

    Jan

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2004
    Ort
    durmersheim international
    Alter
    56
    Beiträge
    159
    hi,

    du kannst die daten in einem puffer empfangen (config serialin).
    dabei werden interne variablen gebildet auf die dein hauptprogramm zugreifen muss. aber irgendwann muss der puffer halt auch geleert werden.

    gruss, harry

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.03.2004
    Beiträge
    137
    ah gut, werd ich mir mal anschauen Vielen Dank!

    Gruss

    Jan

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.11.2003
    Ort
    Langen / Hessen
    Alter
    51
    Beiträge
    393
    Hallo Gemeinde,

    ich habe mich mal an den bereits bestehenden Thread drangehängt, er behandelt wohl auch mein Problem.

    Ich habe einen Mega16 und sende über eine Softwaregenerierte RS232 einen String an einen AT90S2313 an dem ich den RxD Pin der Hardware RS232 verwende. Ich habe nun schon am 2313er einen seriellen Puffer eingerichtet mit "Config Serialin = Buffered , Size = 20" nun will ich einen String des Mega16 empfangen indem ich den USART Interrupt abfrage und einen String erzeuge "S=S+chr(urxc)"

    wenn der String vollständig ist wird er an einem LCD angezeigt. Allerdings schleichen sich immer wieder Fehlzeichen bei der Ausgabe auf dem LCD ein. Hat jemand eine Lösung hierzu.

    Gruss Clemens

    P.S.: Wenn ich wieder zuhause bin poste ich mal den Basic Code.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    27.08.2004
    Beiträge
    159
    irgendwo hab ich das schonmal gelesen...such mal im Forum......
    das passiert, wenn der Takt vom µC nich so 100% genau ist und dann das ganze leicht asynchron wird....aber du hast ja n buffer.....hmmmm.....

    irgednwo stands

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    21.08.2004
    Beiträge
    27
    ich habe die ganze Sache mal auf Basis des S.N.A.P. Protokolls angefangen zu testen. Dabei viel auf, das in dem Beispielen von C. Kuehnel mit "Waikey()" gearbeitet wurde und dabei das Hauptprogramm solange unterbrochen war bis tatsächlich was reinkam.
    Ich hab das ganze etwas umgestrickt und arbeite jetzt mit Buffer und nutze "Inkey()", da wird der Buffer gelesen(wartet nicht auf Eingang) und wenn nix drinsteht geht das Programm einfach weiter, ansonsten wird überprüft ob das Synchronisationsbyte kam, wenn ja: weiter einlesen wenn nein: zurück zum Hauptprogramm.
    Im Simulator läuft die Sache mit einem M8 sehr gut.

+ Antworten

Berechtigungen

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