-         

Ergebnis 1 bis 5 von 5

Thema: USART, ATMega8 -->UDR laden ohne zu senden?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200

    USART, ATMega8 -->UDR laden ohne zu senden?

    Anzeige

    Hallo,
    ich wollte mal fragen ob es möglich ist, den Puffer der USART-Schnittstelle zu laden ohne jedoch zu senden?

    Hintergrund: ich möchte eine Eingabe (Zeichen) per Interrupt erkennen und dann einen Zeichenkette ausgeben, das Versenden soll ebenfalls interruptgesteuert werden. Nun muss ich einen Weg finden wie ich den Interrupt für das senden aktiviere und das aus der ISR beim Empfangen.
    Im Hauptprogramm soll nix stehen.

    Hoffe das ich mich verständlich ausgedrückt habe, und nicht fragen wozu ich das brauche, weil brauchen tue ich es nicht

    Gruß, pacer

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hallo,

    ich wollte mal fragen ob es möglich ist, den Puffer der USART-Schnittstelle zu laden ohne jedoch zu senden?
    als erstes, ich habe es nicht ausprobiert! Man kann TXEN in UCSRB auf 0 setzen. Wenn man nun UDR einen Wert zuweist, wird er nicht gesendet. Aber UDRE ist dann auch die ganze Zeit 0. Beim nächsten klasischen Sendeversuch mit
    Code:
    while ( !( UCSRA & (1<<UDRE)) );
    bleibt das Programm hängen. Man muss sicherstellen, dass TXEN vorher auf 1 gesetzt wird. UDR sollte dann sofort gesendet werden.
    Ist sicher ein nette Versuch. Probier es mal aus und schreib, ob es so läuft wie ich es vermute.

    Gruß

    Jens

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    ja klar, wenn TXEN auf null ist, wird das register nicht beschrieben, und wenn ich TXEN auf eins setze dann sendet er auch, aber wozu brauche ich dann einen Puffer??

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    20.05.2006
    Ort
    Lippe
    Alter
    48
    Beiträge
    524
    Hm, UDR wird imo bechrieben, auch wenn TXEN auf null ist. Er sendet nur nicht. Ist das nicht das, was du wolltest? Oder ich habe dich missverstanden.

    Gruß

    Jens

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    Das hier habe ich gefunden, also müsste es eigelntlich funktionieren. ich muss wohl nochmal probieren...

    The transmit buffer can only be written when the UDRE Flag in the UCSRA Register is
    set. Data written to UDR when the UDRE Flag is not set, will be ignored by the USART
    Transmitter. When data is written to the transmit buffer, and the Transmitter is enabled,
    the Transmitter will load the data into the Transmit Shift Register when the Shift Register
    is empty. Then the data will be serially transmitted on the TxD pin.

Berechtigungen

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