SPI ATmega16

Gast #2396666
Lesenswert?
• ▲
▼
Hallo zusammen

Ich habe ein Problem mit dem SPI meines mega16. Schlussendlich bin ich 
soweit, dass ich den code vom Datenblatt kopiert habe und auch das 
funktioniert nicht.
Wenn ich den SPI initialisiere und dann ein Byte ins SPDR schreibe, dann 
sollte ja das Byte gesendet werden. Ich sehe aber nichts mit meinem 
analogen KO, auch wenn ich dass in einer Endlosschlaufe mache.
Wenn ich dann auf das SPIF Flag im SPSR warte, dann wird das nie 
gesetzt.

ss habe ich probehalber jetzt weggelassen und testweise sogar MISO und 
MOSI des mega16 verbunden. So sollte doch das geschriebene Byte direkt 
wieder eingelsesn werden!

Programmiere jetzt mit dem AVR-Studio5 und habe alle codeoptimierungen 
ausgeschalten!

Hoffe einer kann mir helfen.
Peet

Anbei noch der Code:

1
#include <avr/io.h>
2

3
void SPI_MasterInit(void)
4
{
5
  int dummy;
6
  /* Set MOSI and SCK output, all others input */
7
  DDRB = 0x00;
8
  DDRB = (1<<5)|(1<<7);
9
  /* Enable SPI, Master, set clock rate fck/16 */
10
  SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
11
  dummy   = SPSR;                   // clear SPIF bit in SPSR
12
    dummy   = SPDR;
13
}
14

15
void SPI_MasterTransmit(char cData)
16
{
17
  /* Start transmission */
18
  SPDR = cData;
19
  /* Wait for transmission complete */
20
  while(!(SPSR & (1<<SPIF)));
21
}
22

23

24
int main(void)
25
{
26
  SPI_MasterInit();
27
  
28
    while(1)
29
    {
30
    SPI_MasterTransmit('AA');
31
    }
32
}

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.