Forum: Mikrocontroller und Digitale Elektronik PWM mit PIC einlesen und auswerten C


von Michael S. (bacardi1992)


Angehängte Dateien:

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.
von Jobst M. (jobstens-de)


Lesenswert?

Hmmm ...

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


Gruß

Jobst
von Tom (Gast)


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).
von Michael S. (bacardi1992)


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?
von STK500-Besitzer (Gast)


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...
von Michael S. (bacardi1992)


Lesenswert?

STK500-Besitzer schrieb:
>
> 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...

Vielen Dank
Ich werde mir das morgen nochmal genauer ansehen.

Wer sonst noch Tipps hat immer her damit :)
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.