Gast
#4724635
Ich möchte ein Funksignal z.B. an PB8 eines STM32F103 dekodieren (Puls-Pausen-Modulation). Dazu sind die Puls- bzw. Pausenzeiten zu bestimmen. Puls: Dauer zwischen steigender und fallender Flanke Pause: Dauer zwischen fallender und steigender Flanke (Periode: Dauer zwischen zwei [steigenden] Flanken) Da gibt es einige Möglichkeiten: Polling, Interrupts, Timer Capture. Offenbar ist es aber auch möglich, den Timer bzw. zwei Capture Units so zu konfigurieren, dass mit ein und demselben Pin (PB8 = TIM4_CH3) beide Zeiten (low/high oder Puls und Periode) messen lässt. Sinnvoll wäre evtl. ein Reset des Timers bei steigender Flanke sowie jeweils Capture bei fallender (Pulsdauer prüfen) und steigender Flanke (Periode, Pause berechnen). Der Interrupt nach einer Periode könnte die Dekodierung durchführen. Leider finde ich aber bislang keine Doku (AN4013), die die Möglichkeiten dieser Timer/Capture-Verknüpfung etwas ausführlicher darstellt. In "Figure 100. General-purpose timer block diagram" (RM0008 www.st.com/resource/en/reference_manual/cd00171190.pdf ) sind die Capture-Einheiten 1&2 sowie 3&4 paarweise verknüpft, jedoch ist TI3FP4 kein gültiger Parameter für die Funktion TIM_SelectInputTrigger(). Ist die Master/Slave-Funktion nur für Channels 1 und 2 möglich? Auch AN4776 beschreibt dies nicht explizit. Eine (andere?) Art der paarweise Zuordnung lässt sich wohl über die TIM_ICInitTypeDef.TIM_ICSelection vornehmen? Lässt sich dort auch der automatische Reset konfigurieren?