Hallo,
ich habe hier zwei Mega8 über SPI verbunden. Der Master sendet recht
nett und der Slave hängt sich auf, sobald ich MISO auf Ausgang schalte
bei der Initialisierung. D.h. es kommt dann kein Interrupt mehr. Schalt
ich den MISO nicht auf Ausgang, dann kommt der Interrupt - aber
natürlich erhält der Master dann immer nur 0xFF, da MISO ja nicht auf
Ausgang gesetzt ist.
hier die Routinen:
1 | void SPI_InitHardware( void )
|
2 | {
|
3 | SPI_SPCR = 0x00;
|
4 | SPI_SPSR = 0x00;
|
5 |
|
6 | SPI_DDR = (1 << SPI_MISO);
|
7 | SPI_SPCR = (1 << SPI_SPIE) | (1 << SPI_SPE);
|
8 | }
|
9 |
|
10 | BYTE SPI_ISRGetPutc( BYTE data )
|
11 | {
|
12 | SPI_SPDR = data;
|
13 | return SPI_SPDR;
|
14 | }
|
15 |
|
16 | ISR(SPI_STC_vect)
|
17 | {
|
18 | LED1_ON();
|
19 | SPI_ISRGetPutc(0xAA);
|
20 | }
|
Was tun?
Gruß Pit