ATMega32: SPI nutzen ohne CLI zu setzen

Gast #1260495
Lesenswert?
• ▲
▼
Hallo,

ich habe einen ATMega32 der über SPI ein Display ansteuert. Wenn ich vor 
der Übertragung ein CLI() und danach ein SEI() setze geht es auch gut. 
Wenn ich aber die interrupts aktiv lasse (Timer und Seriell) dann wird 
teilweise Unsinn versendet.
Der Nachteil von CLI() ist, dass wenn Bytes auf der Seriellen 
Schnittstelle (Rx) empfangen werden, überschreibt das zweite Byte das 
erste wenn beim Empfang des ersten Bytes gerade eine SPI Botschaft 
versendet wird.

Wieso stört der Sprung in die ISR überhaupt das versenden eines 
einzelnen Bytes das bereits im SPDR liegt??
#1260822
Lesenswert?
• ▲
▼
Hallo,

Fred schrieb:
> Wenn ich aber die interrupts aktiv lasse (Timer und Seriell) dann wird
> teilweise Unsinn versendet.
Dann solltest Du Deinen Programmfehler suchen.

> Der Nachteil von CLI() ist, dass wenn Bytes auf der Seriellen
> Schnittstelle (Rx) empfangen werden, überschreibt das zweite Byte das
> erste wenn beim Empfang des ersten Bytes gerade eine SPI Botschaft
> versendet wird.
Naja, wenn Du auch mit 115,2kBaud UART machst und der SPI nur mit 1kHz 
läuft kann das schonmal passieren...

> Wieso stört der Sprung in die ISR überhaupt das versenden eines
> einzelnen Bytes das bereits im SPDR liegt??
Er stört definitiv nicht.

Rest wurde ja schon geschrieben...

Gruß aus Berlin
Michael

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.