Problem SPI + Atmega48

OP #2930685
Lesenswert?

Hallo!

Ich bin gerade dabei die SPI-Schnittstelle in Betrieb zu nehmen. Dazu 
habe ich auf einem Steckbrett folgendes Aufgebaut:

Atmega48
Kondensator zw. Vcc und GND
Pullup an Reset zu Vcc
LED an PC0 und PC1

Folgendes Programm habe ich dazu geschrieben:
1
#include <avr/io.h>
2

3
int main(void)
4
{
5
  SPI_MasterInit();
6
  
7
  DDRC = 0xff;
8
  PORTC = 0;
9
  
10
    while(1)
11
    {
12
    SPI_Transmit(125);    
13
    }
14
}
15

16
void SPI_MasterInit(){
17
  DDRB = (1<<3) | (1<<5); 
18
  SPCR = (1<<SPE) |(1<<MSTR) | (1<<SPR0);
19
}
20

21
void SPI_Transmit(char cData){
22
  SPDR = cData;
23
  PORTC = 1;
24
  while(!(SPSR & (1<<SPIF))){}
25
  PORTC = 3;
26
  
27
}

Ich will nun die Daten vom SPI-Bus mit meinem Logikanalysator 
aufzeichnen. Jedoch kommen da keine Daten an. (LA von IKALOGIK - 
Samplingrate: 1MHz, 261888 Samples --> Resolution: 1µs)

Nun habe ich testweise in SPI_Transmit Ausgänge (LEDs) gesetzt um zu 
testen, ob hier etwas nicht stimmt. Es ist nur Portc0 aktiv. Es scheint, 
als würde das Programm in der while(!(SPSR & (1<<SPIF))){} stecken.

Woran könnte das liegen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren