Hallo Hat schon jemand mit der Bibliothek https://github.com/openwch/arduino_core_ch32 gearbeitet? Ich finde nicht heraus, wie nach "Arduino-Syntax" einem bel. Pin ein externer Interrupt (mit internem Pull-Up/Down) eingerichtet und abgefangen wird? Wenn ich die Doku richtig verstehe, soll "EXTI" implementiert sein, was ich als externen Interrupt interpretiere.
Vielleicht hilft ja ein Blick in https://github.com/openwch/arduino_core_ch32/blob/main/system/CH32V00x/SRC/Peripheral/inc/ch32v00x_exti.h und passend dazu in https://github.com/openwch/arduino_core_ch32/blob/main/system/CH32V00x/SRC/Peripheral/src/ch32v00x_exti.c Vielleicht auch noch https://github.com/openwch/arduino_core_ch32/blob/main/cores/arduino/ch32/interrupt.h https://github.com/openwch/arduino_core_ch32/blob/main/cores/arduino/ch32/interrupt.cpp
:
Bearbeitet durch User
Es mag sein, daß der Blick hilft. Aber wenn ich hunderte Zeilen Code analysieren wollte, würde ich mich gleich über das schlechte Manual hermachen. Es hat wohl einen Grund, warum Leute gerne Arduino-Syntax mögen. Und
1 | void ch32_interrupt_enable(GPIO_TypeDef *port, GPIOMode_TypeDef io_mode,uint16_t pin, void (*callback)(void), EXTIMode_TypeDef it_mode, EXTITrigger_TypeDef trigger_mode); |
führt (bei mir) auch nicht zum Erfolg.
Dann wirst Du wohl auf Interrupts verzichten müssen.
Glückwunsch! Du hast den Sinn von Foren gefunden! Wenn Du eine Frage hast und diese NICHT beantwortet wurde, dann bist du selber Schuld.
Schau eher hier: https://github.com/openwch/arduino_core_ch32/blob/main/cores/arduino/WInterrupts.h der CH32-Core benutzt
1 | void attachInterrupt(uint32_t pin,GPIOMode_TypeDef io_mode, void (*callback)(void), EXTIMode_TypeDef it_mode, EXTITrigger_TypeDef trigger_mode) |
viele andere Cores eher:
1 | void attachInterrupt(uint8_t interruptNum, void (*userFunc)(void), int mode) |
d.H. du musst die Parameter anders anordnen.
Ja, das habe ich auch gefunden (und oben angedeutet). Nur leider komme ich damit auch nicht weiter. Der Interrupt wird nicht ausgelöst (die callback-Routine nicht ausgeführt). Habe auch schon mit allen möglichen Formen für pinMode experimentiert. Eine Email an den genannten Kontakt "yy@" blieb ohne Antwort. Gänzlich strange bleibt auch die Deklaration der Namen für die Pins. Da gibt es einen bunten Mix. Wird wohl einen Grund haben, daß nirgends Beispiele im Netz zu finden sind, wo doch sonst die Arduino-Welt überströmt, von den immer gleichen Codeschnipseln. Schade.
So, die Lösung: https://github.com/openwch/arduino_core_ch32/issues/15#issuecomment-2919514931 Nach den Änderungen klappt es. Da stolperten also schon andere drüber und ich hatte diesen Thread übersehen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.