spi befehl

Gast #499570
Lesenswert?
• ▲
▼
Also das ganze Unterprogramm sieht so aus

void SPI_MasterInit(void)
{
/* Set MOSI and SCK output, all others input */
DDR_SPI = (1<<DD_MOSI)|(1<<DD_SCK);
/* Enable SPI, Master, set clock rate fck/16 */
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
}
void SPI_MasterTransmit(char cData)
{
/* Start transmission */
SPDR = cData;
/* Wait for transmission complete */
while(!(SPSR & (1<<SPIF)))
;
}

Das einzige was ich daraus erkennen kann, ist, dass irgendwelche Bits um 
eine Stelle nach links verschoben werden
Gast #499579
Lesenswert?
• ▲
▼
>Also das ganze Unterprogramm sieht so aus

Zu einem Unterprogramm gehört i.d.R. auch ein "Überprogramm" (auch 
"Hauptprogramm" genannt").
Dort solltest du ein paar "#define" (oder ein paar "#include") finden.
"#define" vereinbart Makros. Und das ist Teil der C-Grundlagen, die 
jeder C-Programmierer haben sollte.
Gast #499581
Lesenswert?
• ▲
▼
Hallo,

falschrum. Es wird eine 1 um DD_MOSI stellen nach links verschoben.

Dazu gehört noch die Definition für DD_MOSI und DD_SCK, vermutlich 
DataDirection MOSI usw.
Dort sollte die Bit-Nummer des Ports zugewiesen sein.

Sowas hat immer zwei Vorteile: man kann lesen, daß er DD_MOSI und DD_SCK 
auf Ausgang setzt, bei z.B. DDR_SPI = $28 (BEISPIEL!) kann man das nicht 
ohne Nachblättern. Außerdem muß man bei einem Wechsel auf einen anderen 
AVR, der SPI an anderen Potrbits hat, nur die Zuordnungen in der 
Definition anpassen und überall im Programm werden ohne weitere Änderung 
die passenden Bits angefasst.

Gruß aus Berlin
Micahel

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.