Hallo
Das gibt ja schon fast Schmerzen, was hier so alles steht.
Also bei SPI ist einer der Master, der andere Slave.
Master gibt den Takt aus, Slave empfängt.
(*)
Die Daten werden auf BEIDEN controllern ins SCHIEBEREGISTER geschrieben.
Dann taktet der Master exakt soviele Takte auf der Clockleitung wie Bits
vorhanden sind.
Das heißt: beide Controller müssen die GLEICHE Einstellung der
Datenlänge haben.
Normalerweiße üblich ist Datenlänge 8 Bit oder 16 Bit, je nach
Schieberegister größe. Theoretisch ist aber jede länge von 1 Bit bis
größe des Schieberegisters möglich.
Nach der entsprechenden Anzahl der Takte wird ein Receive Data Flag im
Controller gesetzt. Diese Flag kann IRQ auslösen oder gepollt werden.
Danach werden die Daten auf BEIDEN Controller aus dem SCHIEBEREGISTER
ausgelesen.
Sollen weitere Übertragungen erfolgen siehe (*)
Deine Aufgabe ist es dafür zu sorgen das beide Controller bereit sind
bevor der Master den Takt anlegt. Wenn der Master mit dem Takten anfängt
bevor der Slave seine Daten in das Schieberegister gelegt hat, sind die
im Master empfangene Daten MÜLL.
Den Unterschied zwischen Pollen und IRQ in Punkto Systemauslastung muss
woh nicht mehr erklärt werden, oder ?