Gast
#1370400
Ich habe zwei MC über SPI (Haupttakt/4) miteinander verbunden. Mein
Master gibt den Takt (SCK), CS und die Daten (Mosi) an den Slave.
Der Slave soll diese Daten mit einem Interrupt verstehen und
abspeichern. Er erkennt diese Daten aber leider nicht. Weiß nicht mehr
weiter....
Habe folgende Einstellungen im Slave getroffen:
SPI initialisierung:
void SPI_Slave_INIT(void)
{
SPCR |= (1<<SPE) | (0<<MSTR) | (1<<SPIE);
}
Interrupt Funktion (Daten sollen per Interrupt erkannt und in der
globalen Variable RECEIVE_u8[1] gespeichert werden- ich denke hier
stimmt etwas nicht!!
SIGNAL (SIG_SPI)
{
RECEIVE_u8[1] = SPDR;
while(!(SPSR & (1<<SPIF)));
}
In der Main soll die Variable (mit Pulse an PD1) ausgegeben werden
int main (void)
{
init_ports(); //Portinitialisierung
sei(); //Globale Interrupts aktiviert
//INIT SPI
SPI_Slave_INIT();
while(1)
{
for (int16_t n = 0; n < RECEIVE_u8[1] ; n++)
{
PORTC &= ~ (1<<PC1);
_delay_us(10);
PORTC |= (1<<PC1);
_delay_us(10);
}
_delay_ms(10);
}