www.mikrocontroller.net

Forum: Compiler & IDEs ATmega128 SPI chip select


Autor: Rekisum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

laut Datenblatt des Mega128 wird das SPIF Flag gesetzt
wenn die SPI-Übertragung vollständig ist.
Nach meinen ersten Experimenten scheint es aber eher so zu sein,
dass das Flag kommt wenn ich wieder was ins SPDR schreiben kann.
Da ich mehrere Chips am SPI bedienen muss brauche ich aber ein
halbwegs synchrones Chip Select.
Hat da jemand schon ne Lösung parat?
Danke!

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"...wenn die SPI-Übertragung vollständig ist"

und

"...wenn ich wieder was ins SPDR schreiben kann."

ist beides das gleiche, das SPI hat doch keinen Sendepuffer.

Ich polle auf das SPIF und dann kommt das /CS = 1 deutlich nach der
letzten Taktflanke:

while( !(SPSR & (1<< SPIF)));
SPI_PORT |= (1<<SPI_xADC);


Peter

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.