MultiWii CRIUS AIO Pro v2 PPM

Spacefish

Erfahrener Benutzer
#1
Hallo,

ich habe jetzt das ganze WE rumgebastelt den PPM Pin am Crius AIO Pro V2 zum laufen zu kriegen.. Nach einigem rumgemesse u.s.w. stellte sich heraus das er mit dem PL1 (ICP5) pin des Mega 2560 verbunden ist. MultiWii jedoch auf einen anderem pin her der Intterrupt fähig ist (Man verwendete A8 beim alten Crius Board). Über PPM_ON_THROTTLE ging es auch nicht, da diese pin scheinbar auch nicht interruptfähig ist..

PL1 kan man aber per Input capture sehr Zeitscharf auslesen (es wird Timer 5 gestartet und eine ISR aufgerufen wenn eine fallende oder steigende kannte erkannt wird. in der ISR ist dann der Zeitpunkt des Ereignisses bekannt)

https://www.spacefish.biz/2014/03/ppm-mit-multiwii-und-crius-aio-pro-v2/

hier der Code der dazu im setup() nötig ist:

Code:
TCCR5A =((1<<WGM50)|(1<<WGM51)); // Input Capture auf steigende Kante auf Timer 5
TCCR5B = ((1<<WGM53)|(1<<WGM52)|(1<<CS51)|(1<<ICES5)); 
OCR5A = 40000; // 0.5us pro Timer Tick
TIMSK5 |= (1<<ICIE5); // Input Capture aktivieren auf PL1 / Timer 5
in RX.cpp über rxInt(void):

Code:
ISR(TIMER5_CAPT_vect) { rxInt(); } // ISR binden
Es funktioniert so, was mich wundert, da eigentlich die ISR nicht bei einer fallenden Kante aufgerufen wird, was ja beim PPM Signal nötig wäre nach meinem Verständnis, da ja sonst nicht die Pulsbreite erkannt werden kann.

In rxInt(void) wird dann natürlich trozdem now = micros(); verwendet um die Pulsbreite zu berechnen.. hier könnte man auch die Differenz aktuellem Stand von ICR5 und letzem Stand von ICR5 verwenden. Dann müsste man natürlich aber auch Überläufe behandeln.

Wollte ich nur mit euch teilen :) evtl. räume ich den Code noch etwas an die richtige Stelle und mach ein Mergerequest auf :)
 
Zuletzt bearbeitet:

Spacefish

Erfahrener Benutzer
#2
Hier der versprochene Patch (im Anhang).

Aktivieren kann man das ganze mit

Code:
#define PPM_ON_PL1
Es wird auch implizit aktiviert wenn

Code:
#define CRIUS_AIO_PRO_V2
und
Code:
#define SERIAL_SUM_PPM ROLL,YAW,PITCH........
gesetzt sind.
 

Anhänge

Zuletzt bearbeitet:
FPV1

Banggood

Oben Unten