Witam.
Problem jest nastepujacy.
mam dzialajacy kod komunikacji miedzy atmegami po SPI.
Odbior danych po stronie slave w przerwaniu ,po stronie master w funkcji :
Dla wygody postanowilem rowniez w przerwaniu zrobic odbior danych po stronie master:
w main wlaczone sei();
jednak zglaszanie przerwania przychodzacych danych po stronie master nie dziala....
Problem jest nastepujacy.
mam dzialajacy kod komunikacji miedzy atmegami po SPI.
Odbior danych po stronie slave w przerwaniu ,po stronie master w funkcji :
char SPI_MasterReceive(void)
{
SPDR = 0xFF;
/* Wait for reception complete */
while(!(SPSR & (1<<SPIF)))
;
/* Return data register */
return SPDR;
}
Dla wygody postanowilem rowniez w przerwaniu zrobic odbior danych po stronie master:
void SPI_MasterInit(void)
{
/* Set MOSI and SCK output, all others input */
DDRB = (1<<DDB5)|(1<<DDB7);
/* Enable SPI, Master, set clock rate fck/16 */ + interrupt
SPCR = ((1<<SPE)|(1 <<SPIE)|(1<<MSTR)|(1<<SPR0));
}
SIGNAL (SIG_SPI) {
znak=SPDR;
if (znak==0x05) { cyfra(3); }
}
w main wlaczone sei();
jednak zglaszanie przerwania przychodzacych danych po stronie master nie dziala....