zu langsame ISR?

Gast #75497
Lesenswert?
• ▲
▼
Moin!
Ich habe folgende ISR geschrieben:

SIGNAL(SIG_UART_RECV)
  {
    instring[Buff++] = UDR;
  }

Kann es sein, dass die zu langsma ist, um auf vier sehr kurz
hintereinander folgende Bytes bei 9600 Baud zu reagieren?
Wie würde eine schneller (ASM?) aussehen?

Vielen Dank im Vorraus
Rahul
Gast #75499
Lesenswert?
• ▲
▼
So, ich habe mir den ASM-Code angeguckt.
Die ISR geht von 5C bis 9B als insgesamt 3F Taktperioden(63 µs).
Der µC hat eine Frequenz von 4MHz und somit eine Verarbeitungszeit von
0,25µs pro Anweisung (1Byte).
Ein komplettes Byte bei 9600 Baud hat eine Länge von 1,04ms als
1040µs.
Somit wäre es dem AVR möglich, während der Übertragung eines Byte 977
Anweisungen auszuführen.

Aber leider verschluckt er immer das Startbit des letzten Byte, und
empfängt es deswegen wohl auch nicht.

Ich werde mich jetzt wohl doch zu einer ASM-Routine durchschlagen
müssen.
Schönen Gruß
Rahul
#75500
Lesenswert?
• ▲
▼
"Ich werde mich jetzt wohl doch zu einer ASM-Routine durchschlagen
müssen."

Das wird Dir bloß nichts nützen.

Du hast doch erkannt, daß Du nur 63µs jede 1040µs brauchst, also
keinerlei zeitliche Probleme hast.

Dann muß es ein anderer Fehler sein und den must Du finden (z.B. Anzahl
der Daten-,Stopbits, Baudrate, Parity).


Peter
Gast #75501
Lesenswert?
• ▲
▼
Hallo Peter!
Lesen bildet!
Hätte ich mich etwas genauer mit AVR-Studio und dem dazugehörenden
Handbuch beschäftigt, wäre mir auchfgefallen, dass der AVR gar nicht
mit 4MHz, sondern nur mit 3,69MHz betrieben wird.
Sämtliche ISR funktionieren jetzt einwandfrei!
Danke noch mal.
Schönen Gruß
Rahul

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.