www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Atmega 8 SPI Frage


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich möchte gerne mehrere Atmega 8 kaskadieren und mit dem ersten Atemega 
8 die Daten senden.

Die restlichen mega 8 sollten dann jeweils eine rgb led ansteuern.

Also wenn ich drei mal 8 bit schicke dann sind das die helligkeiten für 
den mega 8 der dann die pwm per hardware ausgibt.

Nun meine Frage:

wenn ich die ersten 8 bit sende, kommen die Daten dann beim Mosi gleich 
wieder raus? Weil wenn die gleich wieder rauskommen, dann kann ich sie 
ja im atmega nicht hinterlegen.

Also es sollte so wie das ShiftBrite wie hier funktionieren: 
http://www.nodna.com/product_info.php?products_id=...

Mein Problem ist nur, daß das ShiftBrite eine PWM auflösung von 10bit 
hat.  Mir ist das leider zuviel und deshalb möchte ich es gerne selber 
realisieren.

Ist das mit mehreren M8 möglich oder funktioniert das so nicht?

Gruß Stefan

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also mein Problem ist, das ich mit SPI 3x8 bit in einen M8 reinschiebe. 
ist das prinzipiell möglich, ohne das der M8 die Daten gleich wieder 
rausschiebt.

Geht das?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>wenn ich die ersten 8 bit sende, kommen die Daten dann beim Mosi gleich
>wieder raus? Weil wenn die gleich wieder rauskommen, dann kann ich sie
>ja im atmega nicht hinterlegen.

Das Shiftregister des SPI hat einen Read-Buffer. Kannst du dann im 
'Serial Transfer Complete-Interrupt' auslesen.

MfG Spess

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Stefan schrieb:
> Also mein Problem ist, das ich mit SPI 3x8 bit in einen M8 reinschiebe.
> ist das prinzipiell möglich, ohne das der M8 die Daten gleich wieder
> rausschiebt.
>
> Geht das?

Warum nicht?
SPI liest 8 Bit in das SPI-Empfangsregister ein.
Parallel dazu wird der Inhalt des Senderegisters rausgeschoben.
Das sind im AVR 2 getrennte Register, die unter der gleichen Adresse 
luegen.
Mit out SDR,r16 wird das Senderegister beschrieben, mit in r16,SDR das 
Empfangsregister gelesen.

Um Deine 3 Byte muß Du Dich ohnehin alleine kümmern.

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.