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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.