mh schrieb:
> Ich versuche mich gerade an den RFM12-Funkmodulen (an einem STM32).
> Was ist die beste Lösung, das ganze Interruptgesteuert zu machen?
> Bei nIRQ wird ja alles mögliche als Interrupt gesendet.
Natürlich, denn nIRQ ist ja die einzige Interruptquelle eines RFM12,
bezogen auf die Außenwelt.
Man liest also als Reaktion auf den Interrupt das RFM12-Statusregister
aus (und tut das tunlichst, ohne eine ggf. gerade laufende
SPI-Kommunikation mit dem RFM12 zu einem anderen Thema zu unterbrechen,
sondern erst DANACH). Aber anderererseits auch: ASAP. D.h.: man
braucht einen sinnvoll organisierten Protokollstack, der das Einschieben
hochpriorisierter Status-Abfragen und ggf. der Reaktionen darauf
ermöglicht.
Dann schaut man im ausgelesenen Statusregister-Inhalt, was eigentlich
die Quelle des Interrupts war und behandelt diese entsprechend. So sehr
viele gibt es ja nicht, insgesamt nur fünf. Und nur auf zwei davon (das
erste und das dritte) muß man bezüglich des RFM2 irgendwie aktiv
reagieren, für die restlichen drei genügt bereits das schiere Auslesen
des Statusregisters, um die Interruptanforderung des RFM12
zurückzusetzen.
> Ich hab im Moment z.B. das Problem, dass ATS gesetzt ist, weiß aber
> nicht genau warum, bzw. wie man das behebt dass der nicht mehr auslöst.
> Ich könnte für den Empfang nFFT auswerten, nur was werte ich dann beim
> senden aus?
"ATS" kommt in meinem DB überhaupt nicht als mögliche Interruptquelle
vor, sondern nur als eins der unter "ferner liefen" zu subsummierenden
Statusbits. Hast du ein anderes DB? Dann ist es ganz sicher nicht das
Richtige!