- LiTime Speicher und Akkus         
Ergebnis 1 bis 5 von 5

Thema: Probleme mit UART-Kommunikation

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.05.2013
    Beiträge
    8

    Probleme mit UART-Kommunikation

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo =)

    bin gerade an der UART-Kommunikation. Ich möchte Daten zwischen einem Terminal (PC über RS-232) und meinem
    Mikrocontroller (ATMEGA 164 PA) austauschen. Beim senden vom atmega an
    den PC sehe ich die Zeichen auch auf dem Terminal, nur das empfangen
    klappt nicht so recht =(

    Zuerst wollte ich das Ganze Interrupt-gesteuer machen. Das hat aber gar nicht funktioniert...

    Jetzt habe ich es mit Polling versucht, allerdings habe ich das auch nicht hinbekommen

    Im Anhang mal mein Quellcode
    __Test_UART_Polling.c

    vielen Dank schon mal im Voraus

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    20.08.2008
    Ort
    Karlsruhe
    Alter
    36
    Beiträge
    1.225
    Empfangen: Du prüfst nicht korrekt ob das RXC-Bit gesetzt ist. Anstatt dass du das Bit maskierst, veroderst du es mit dem Wert von UCSR0A.

    @Interrupts: Du schaltest den Empfangs-Interrupt immer noch an. Das solltest du sein lassen wenn du nicht mit Interrupts arbeitest, ohne zugehörigen Interrupt-Handler startet der AVR sonst bei auftreten des Interrupts (und vorhandener globalen Interruptfreigabe über sei()) neu!

    mfG
    Markus
    Tiny ASURO Library: Thread und sf.net Seite

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    16.05.2013
    Beiträge
    8
    danke für deine Hilfe =)

    Hab nun die Überprüfung der empfangen-Funktion angepasst: while ( !(UCSR0A & (1 << RXC0)))

    Die Interrupts sind nun auch alle deaktiviert.
    Danke für die Erklärung, das war echt total hilfreich.

    Leider kann ich immer noch nicht senden.

  4. #4
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.651
    Hallo lissy,

    erstmal herzlich willkommen hier im Forum.

    Zitat Zitat von __lissy__ Beitrag anzeigen
    ... bin gerade an der UART-Kommunikation ...
    Ich habe mich irgendwann entschlossen, den Code von Peter Dannegger zu verwenden. Läuft super, interruptgetrieben, mit FIFO uswusf - nur positiv und das beim Senden und Empfangen in meinen doch recht interrupt"verseuchten" Controllern. Einen Nachteil hat das Ganze: Peter schreibt in C so knackig knapp, dass es für mich fast nicht nachvollziehbar war, aber ich bin ich C wirklich nicht besonders gut.

    Mittlerweile habe ich für (m)einen mega1284 den Code in Funktion - als Bibliothek. Das könnte ich Dir gern schicken, vielleicht zusammen mit (m)einem Praxisbeispiel (als fauler Mensch wäre das dann für den m1284), wenn Du Dich nicht gleich durch PD´s Code durchwurschteln wolltest.

    Ansonsten - viel Erfolg.
    Ciao sagt der JoeamBerg

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    16.05.2013
    Beiträge
    8
    Danke für eure Hilfe, es funktioniert nun =)

    Den Code von Peter Dannegger werde ich mit trotzdem mal anschauen, das Ganze mit Interrupts zu steuern wär auch schon gut

Ähnliche Themen

  1. Probleme mit UART Kommunikation
    Von curzon161 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 28.08.2011, 18:17
  2. Antworten: 5
    Letzter Beitrag: 27.08.2011, 22:43
  3. Problem mit UART Kommunikation
    Von Testus2K im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 11
    Letzter Beitrag: 30.05.2011, 14:41
  4. Probleme mit INPUT für µC zu PC Kommunikation
    Von MelMan im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 24.11.2008, 19:50
  5. Keine UART kommunikation mit ATmega128
    Von Kornhaas.net im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 29.08.2005, 18:21

Stichworte

Berechtigungen

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

LiTime Speicher und Akkus