pa-pa / AskSinPP

104 stars 71 forks source link

Radio RFM69 #305

Closed Nico9n closed 1 year ago

Nico9n commented 1 year ago

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.

pa-pa commented 1 year ago

Leider funktioniert die ISR-Anbindung mit STM32 & RP2040 nicht.

jp112sdl commented 1 year ago

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.

Nico9n commented 1 year ago

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.

jp112sdl commented 1 year ago

Testen konnte ich es leider nicht

Na das macht ja hier zum Glück die CI von Github Actions :-)

jp112sdl commented 1 year ago

@Nico9n so sieht es jetzt gut aus. Und überhaupt erstmal Danke für's Beisteuern des Codes!

@pa-pa mergen?

pa-pa commented 1 year ago

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.

jp112sdl commented 1 year ago

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.

Nico9n commented 1 year ago

Ich find @jp112sdl Lösung übersichtlicher.