Forum: Mikrocontroller und Digitale Elektronik AVR SPI Slave hängt bei MISO -> Ausgang


von Pit (Gast)


Lesenswert?

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

von Pit (Gast)


Lesenswert?

Problem gelöst: durch die direkte Zuweisung von MISO (ohne |) hab ich 
mir die LED abgeschaltet, die nämlich am gleichen Port hängt.

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