PWM mit PIC einlesen und auswerten C

OP #2462685
Lesenswert?

Hallo,
da ich neu hier bin möchte ich mich erstmal vorstellen.
Ich heiße Michael, komme aus Oberösterreich und bin 19.
Derzeit bin ich noch in Ausbildung in einer HTL und habe jetzt mein 
letztes Schuljahr.

Nun zu meinem Problem:
Ich möchte eine LED Steuerung bauen, mit der ich die Beleuchtung eines 
Modellflugzeuges während des Fluges einschalten kann, dazu muss ich ein 
PWM Signal von ca. 50Hz (siehe Anhang) mit einem PIC18F4520 bzw später 
dann mit einem PIC16F883 einlesen und das Tastverhältnis bestimmen. Das 
Signal kommt aus einem "Jeti Duplex" Modellbauempfänger

Wie macht man soetwas?
Ich habe zwar Grundkenntnisse in C, allerdings noch nie mit Interrupts 
gearbeitet.
Angehängte Dateien:
Gast #2462821
Lesenswert?

Michael Sch. schrieb:
> Ich möchte ... und das Tastverhältnis bestimmen. Das
> Signal kommt aus einem "Jeti Duplex" Modellbauempfänger

Das Tastverhältnis des Signals, das aus dem Modellbauempfänger 
herauskommt, ist ziemlich bedeutungslos. Die Stellung der Steuerknüppels 
wird alleine über die Dauer des positiven Teil des Pulses kodiert (1..2 
ms). Der Abstand der Pulse ist über einen weiten Bereich unkritisch 
(10..100 ms).
OP #2463121
Lesenswert?

Tom schrieb:
> Das Tastverhältnis des Signals, das aus dem Modellbauempfänger
> herauskommt, ist ziemlich bedeutungslos. Die Stellung der Steuerknüppels
> wird alleine über die Dauer des positiven Teil des Pulses kodiert (1..2
> ms). Der Abstand der Pulse ist über einen weiten Bereich unkritisch
> (10..100 ms).

OK das habe ich auch nicht gewusst, danke für den Hinweis.


Jobst M. schrieb:
>
> Mit der steigenden Flanke einen Interrupt auslösen, welcher nach 1.5ms
> nachschaut, ob der Pin noch high ist.

Und wie genau löse ich diesen Interrupt aus?
Gast #2463131
Lesenswert?

Michael Sch. schrieb:
> Jobst M. schrieb:
>>
>> Mit der steigenden Flanke einen Interrupt auslösen, welcher nach 1.5ms
>> nachschaut, ob der Pin noch high ist.
>
> Und wie genau löse ich diesen Interrupt aus?

Dein Controller sollte einen externen Eingang haben, der mehr als nur 
die normale Portfunktion besitzt oder wirklich ein dedizierter 
Interrupt-Pin ist (z.B. RB0).
Sieh dir dazu mal im Datenblatt
http://ww1.microchip.com/downloads/en/DeviceDoc/41291b.pdf
Abschnitt 3.4 an.

Aber eigentlich musst du nur in regelmäßigen Abständen (durch den Timer 
generiert) den Pin abfragen, und daraus auf die Impulslänge schließen...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren