www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega32: SPI nutzen ohne CLI zu setzen


Autor: Fred (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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??

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Problem ist in Zeile 42 zu finden.

Autor: Ahem (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.