Hallo NRicola,
Du hast uns nicht verraten welchen PIC der 18er Serie Du benutzt.
Es gibt beim 18F252 z.B. ein Problem im SPI Interface im SlaveMode
Für deinen PIC gibt es ganz sicher auch einen "ERRATA" Sheet, weil es gibt keine funktionierenden PICs...
Spass muss sein, ich liebe die Dinger trotzdem.
Schau mal dort rein, eventuell hilft es dann weiter.
hier mal der Hinweis vom PIC18F252:
Module: MSSP (SPI, Slave Mode)
In its current implementation, the SS (Slave
Select) control signal, generated by an external
master processor, may not be successfully recognized
by the PIC® microcontroller operating in
Slave Select mode (SSPM3:SSPM0 = 0100). In
particular, it has been observed that faster
transitions (those with shorter fall times) are more
likely to be missed than than slower transitions.
Work around
Insert a series resistor between the source of the
SS signal and the corresponding SS input line of
the microcontroller. The value of the resistor is
dependent on both the application system’s
characteristics and process variations between
microcontrollers. Experimentation and thorough
testing is encouraged.
This is a recommended solution. Others may exist.
zudem würde ich mir mal den Assemblercode von der Interruptfunktion ansehen.
Ich weis nicht was der Compiler dort für einen "overhead" für Register sichern usw. reinbaut.
Bei einer Free Version von Microchip hab ich hier schon haarsträubenden code erlebt....
Wenn er erstmal 50 Zeilen Code abarbeiten muss bis er deinen Zeile zum Bitsetzen erreicht
kommt da natürlich einiges an Zeit zusammen.
Lesezeichen