-
        

Ergebnis 1 bis 3 von 3

Thema: TXC Interrupt Frage

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    345

    TXC Interrupt Frage

    Anzeige

    Hallo zusammen,

    ich hätte mal eine Frage zu dem TXC interrupt bei einem Atmega1284p.

    Wird das Interrupt nach jedem einzelnen übertragenen Byte ausgelöst? In diverser Literatur steht nur drin, nach der Übertragung der Daten, damit ist aber immer nur eine Byte gemeint.
    Das heißt wenn ich 5 Bytes übertrage, wird 5 mal das Interrupt gefeuert?

    Vielen Dank für die Hilfe.

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.432
    Blog-Einträge
    104
    Hallo,
    ich kann nur versuchen, das Datenblatt zu interpretieren, da ich selber praktisch noch nicht mit dem Transmit Complete interrupt gearbeitet habe.

    Die USART hat einen Transmitt Buffer zu Aufnahme eines zu sendenden Bytes und ein Schieberegister zum seriellen Aussenden des zu übertragenden Bytes. Man schreibt das zu übertragende Byte in den Transmit Buffer (UDR). Ist das Schieberegister leer, also bereit ein Byte seriell auszusenden, wird das Byte automatisch, ohne Zutun des Programmierers in das Sendeschieberegister geschrieben und ausgesendet. Ist das komplette Byte gesendet UND noch keine neues Byte im Transmit Buffer - also wenn noch keine weiteren Daten zum Senden bereitstehen, wird das TXC Flag gesetzt.

    Wenn Du also fünf Bytes so schnell es geht sendest, also immer den Transmit Buffer gefüllt hältst, wird das TXC nur einmal am Ende der Übertragung gesetzt. Übergibst Du die fünf Bytes aber langsamer als sie gesendet werden könnten in den Transmit Buffer, wird das Flag öfter gesetzt. Ein Transmit Complete interrupt wird aber nur ausgeführt wenn er auch enabled ist. Falls Du die Funktion benötigst, würde ich für eindeutige Verhältnisse das TXC-Flag vor Beginn einer Übertragung löschen.

    Auf der anderen Seite scheint es nur bei Halfduplex Verbindungen von Bedeutung zu sein, da es für den Transmit Buffer
    empty (Data Register Empty(UDREn)) ja einen eigenes Interruptflag gibt.
    Zitat Zitat von Datenblatt-doc8059.pdf
    The Transmit Complete (TXCn) Flag bit is set one when the entire frame in the Transmit Shift Register has been shifted out and there are no new data currently present in the transmit buffer. The TXCn Flag bit is automatically cleared when a transmit complete interrupt is executed, or it can be cleared by writing a one to its bit location. The TXCn Flag is useful in half-duplex communication interfaces (like the RS-485 standard), where a transmitting application must enter receive mode and free the communication bus immediately after completing the transmission.
    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    345
    Hallo Searcher,

    Vielen Dank für deine Erklärung!

    Ich denke das was du geschrieben hast trifft exakt zu. Wenn man das UDRE Interrupt verwendet um sofort ein Byte in das UDR nachzuschieben, dann wird das TXC Interrupt nur einmal gefeuert.
    Ich habe das eben mal ausprobiert und das hat sich exakt so verhalten!

    Das hat mir schon mal sehr viel geholfen.

Ähnliche Themen

  1. PWM Frage und Interrupt mit Tasten?
    Von Enterprise im Forum C - Programmierung (GCC u.a.)
    Antworten: 24
    Letzter Beitrag: 31.03.2008, 18:16
  2. Interrupt Frage
    Von MichlM im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 02.07.2007, 15:31
  3. Frage zu Interrupt
    Von Bluesmash im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 02.08.2005, 21:38
  4. Frage zu Input-Interrupt
    Von jagdfalke im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 11
    Letzter Beitrag: 07.07.2005, 20:58
  5. Frage zu Interrupt
    Von Bluesmash im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 10
    Letzter Beitrag: 16.06.2005, 15:02

Berechtigungen

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