Forum: Compiler & IDEs Externer Interrupt mit Open WCH Bibliothek beim CH32V00x


von Jürgen (derkleinemuck)


Lesenswert?

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.

von Harald K. (kirnbichler)


Lesenswert?


: Bearbeitet durch User
von Jürgen (derkleinemuck)


Lesenswert?

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.

von Harald K. (kirnbichler)


Lesenswert?

Dann wirst Du wohl auf Interrupts verzichten müssen.

von Jürgen (derkleinemuck)


Lesenswert?

Glückwunsch! Du hast den Sinn von Foren gefunden!
Wenn Du eine Frage hast und diese NICHT beantwortet wurde, dann bist du 
selber Schuld.

von Εrnst B. (ernst)


Lesenswert?

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.

von Jürgen (derkleinemuck)


Lesenswert?

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.

von Jürgen (derkleinemuck)


Lesenswert?

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
Noch kein Account? Hier anmelden.