heidi01
27.10.2005, 13:15
HALLO;
ich verzweifle gerade an dem Versuch 2 ATMega's per SPI kommunizieren zu lassen.
µc 1 ist ein Mega 16 und sendet alle 2 sekunden eine zweistellige zahl per Hardware-SPI an µc2.
µC 2 ist ein Mega 8 der die Daten per Hardware-SPI empfängt.
Nun das Problem: Wenn ich den SPI Eingang regelmässig abfrage kommt jeder Wert an ( auskommentierte Routine in der Main Loop , Interrupts sind dabei Nicht enabled. Sobald ich die Interrupts einschalte und statt dem Polling die Interruptgesteuerte Routine verwende, kommt nur jeder 2 Wert am µC 2 an.
Hat jemand von Euch 'ne Idee wo hier mein Fehler liegt ?
Jürgen
$regfile = "m8def.dat"
$crystal = 4000000
Dim B As Byte
Config Spi = Hard , Interrupt = On
Spiinit
Enable Spi
Enable Interrupts
On Spi Spiempf
Cls
'---------------------------
Main:
Do
'Spiin B , 1
'Lcd B
'Waitms 222
'Cls
Loop
End
'----------------------------
Spiempf:
Spiin B , 1
Lcd B
Return
ich verzweifle gerade an dem Versuch 2 ATMega's per SPI kommunizieren zu lassen.
µc 1 ist ein Mega 16 und sendet alle 2 sekunden eine zweistellige zahl per Hardware-SPI an µc2.
µC 2 ist ein Mega 8 der die Daten per Hardware-SPI empfängt.
Nun das Problem: Wenn ich den SPI Eingang regelmässig abfrage kommt jeder Wert an ( auskommentierte Routine in der Main Loop , Interrupts sind dabei Nicht enabled. Sobald ich die Interrupts einschalte und statt dem Polling die Interruptgesteuerte Routine verwende, kommt nur jeder 2 Wert am µC 2 an.
Hat jemand von Euch 'ne Idee wo hier mein Fehler liegt ?
Jürgen
$regfile = "m8def.dat"
$crystal = 4000000
Dim B As Byte
Config Spi = Hard , Interrupt = On
Spiinit
Enable Spi
Enable Interrupts
On Spi Spiempf
Cls
'---------------------------
Main:
Do
'Spiin B , 1
'Lcd B
'Waitms 222
'Cls
Loop
End
'----------------------------
Spiempf:
Spiin B , 1
Lcd B
Return