Closed Nico9n closed 1 year ago
Leider funktioniert die ISR-Anbindung mit STM32 & RP2040 nicht.
Da sich die Typen nach Plattform unterscheiden (RP2040=PinStatus
, STM32= ExtIntTriggerMode
) könnte man in der Klasse des Funkmoduls vielleicht einfach bei sowas wie
uint8_t interruptMode() { return 0; //FALLING };
bzw.
uint8_t interruptMode() { return 1; //RISING };
bleiben und in der
Radio.h dann
attachInterrupt(digitalPinToInterrupt(GDO0),isr, HWRADIO::interruptMode() == 0 ? FALLING : RISING);
.
machen.
Wäre mein Lösungsweg.
Kostet aber sicher ein paar Byte.
Ich hab das nach dem Vorschlag von @jp112sdl angepasst. Testen konnte ich es leider nicht, da ich beim kompilieren für stm32 noch Probleme mit der OneWireSTM.h habe
HB-LC-Dim5PWM-CV.ino:20:10: fatal error: OneWireSTM.h: No such file or directory
Mir fehlt hier wohl noch eine Abhängigkeit in PlatformIo.
Ich geh aber davon aus, dass es so laufen sollte.
Testen konnte ich es leider nicht
Na das macht ja hier zum Glück die CI von Github Actions :-)
@Nico9n so sieht es jetzt gut aus. Und überhaupt erstmal Danke für's Beisteuern des Codes!
@pa-pa mergen?
Hätte es eher wie hier gemacht: https://github.com/pa-pa/AskSinPP/blob/5bc817e1a5341c27434d26d476ed30f69e29fe46/AskSinPP.h#L36 Einen eigenen Typ IsrMode für alle unterschiedlichen Platformen definieren.
Dann muss das aber für jeden µC gemacht werden? Wird das nicht noch unübersichtlicher?
Zumindest ESP32, RP2040 und STM32 müssten hier dann nur für diese eine Stelle getrennt werden
https://github.com/pa-pa/AskSinPP/blob/5bc817e1a5341c27434d26d476ed30f69e29fe46/AskSinPP.h#L47
bzw. für sie jeweils dann noch mal extra typedef
angelegt werden.
Ich find @jp112sdl Lösung übersichtlicher.
Ich hab das RFM69 Modul implementiert. Es gibt noch ein paar kleinere ToDos die ich in der Radio-RFM69.h vermerkt habe. Auf die Funktion hat das aber keinen weiteren Einfluss.