Hallo,
ich habe ein kleines Problem mit der Simulation der SPI im AVR-Studio.
Ich initilalisiere die SPI-Schnittstelle mit den Beispielcodes im
AVR-Datenblatt (ATMega8), die Funktionen liegen in SPI.c. Wenn ich nun
zwei Bytes übertrage, bleibt das Programm im zweiten Byte hängen (die
Write-Collision-Flag wird gesetzt). Es kommt nicht mehr aus der
SPI_MasterTransmit heraus. Meine Überlegung war, dass die Übertragung
des ersten Bytes noch nicht abgeschlossen war. Aber selbst wenn ich ein
langes Delay vor die Übertragung des zweiten Bytes setze tritt das
Problem immer noch auf. Hat jemand eine Idee?
Vielen Dank!
#include <avr/io.h>
#include <avr/delay.h>
#include "SPI.h"
int main(void)
{
SPI_MasterInit();
SPI_MasterTransmit(0);
SPI_MasterTransmit(9);
return 0;
}