Forum: Mikrocontroller und Digitale Elektronik SPI-Ausgabe mit Atmega128


von Piedro (Gast)


Lesenswert?

Hallo ich habe folgendes kleine Programm zur Ausgabe eines 
SPI-Datagramm,für einen Atmega128, geschrieben.
Da ich den Quellcode quasi fast 1:1 aus dem (vollständigen) Datenblatt 
des Atmega128 habe und verstehe ich nicht warum ich im Simulator des AVR 
Studio nicht sehen kann ob die Ausgabe funktioniert. Beim Debuggen 
bleibt er immer in dieser Zeile "while(!(SPSR & (1<<SPIF)))" hängen.
 Deshalb folgende 2 fragen. Passt der Quellcode so? und wenn ja wie kann 
ich im Simulator sehen, ob die Ausgabe funktioniert? (ich verwende AVR 
Simulator 2)


#include <avr/io.h>
#include <stdint.h>
#include <avr/interrupt.h>

char Data;

void SPI_MasterInit(void)
{
/* Set MOSI and SCK output, all others input */
DDRB=(1<<PB2)|(1<<PB1);
/* Enable SPI, Master, set clock rate fck/16 */
SPCR=(0<<SPIE)|(1<<SPE)|(0<<DORD)|(1<<MSTR)|(1<<SPR0);

}


void SPI_MasterTransmit(char Data)
{
/* Start transmission */
SPDR=Data;
/*Wait for transmission complete */
while(!(SPSR & (1<<SPIF)))
{
Data=Data;
}

}

int main(void)
{

SPI_MasterInit();

Data=0x55;

SPI_MasterTransmit(Data);

while (1)
{
}

}
Ich wäre echt sehr dankbar, wenn mir jemand helfen könnte.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.