Forum: Mikrocontroller und Digitale Elektronik PWM Eingang


von Sven Müller (Gast)


Lesenswert?

Hallo,

Ich habe eine Schaltung die ein Signal herausgibt, welches 
Pulsweitenmoduliert ist.
Ich muss also die Zeit ermitteln in welcher Hi oder Lo Pegel anliegt.
Geht das mit einem PWM bzw. CCP Eingang? Gibt es einen Mikrocontroller 
der zwei ein - und zwei solche Ausgänge hat?
Oder muss ich das ganze über normale Portpins und Interrupts lösen die 
dann einen Timer starten/stoppen?
Zur Auswahl stehen Atmel Mega16 oder ein Pic der neueren 16F Familie...

Danke schonmal...
sven

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Spezielle PWM-Eingänge gibt es nicht. Du hast also zwei Möglichkeiten: 
entweder du misst die Dauer eines Pulses (sollte je nach Frequenz des 
Signals kein Problem sein), oder du wandelst die PWM in eine 
Gleichspannung um und gibst diese an den AD-Wandler.

von Sven Müller (Gast)


Lesenswert?

Verstehe ich das richtig das ich die Dauer des Pulses dann mit Hilfe von 
Interrupts und Timern messen muss??

Naja gut, muss ich den Mehraufwand wohl in kauf nehmen...es hätte ja so 
einfach sein können...

von Johanes Eller (Gast)


Lesenswert?

Habe es gerade mit int0 u. timer gemacht:
Bei 4MHz Übertragungsrate und Timer ck8 ca. 1,5khz Übertragungsrate

Übertragen wird:
Sender:
High: Timercounter + 127-> 1Aufruf zuerst low dann High
Low: Timercounter unverändert-> 1 Aufruf low dan High

Empfänger: Timeraufruf immer mit Timercounter + 127 im interupt des 
Timers erhöht-> doppelte Abtastrate:
Bei jedem timeraufruf wird das Register "Taufruf" incrementiert.
Im Int0 wird bei Eingang eines Datensignals geprüft ob das Register 
"Taufruf"
1 ist -> high
2 ist -> HIgh
3 ist -> low
4 ist -> low
anschließend wird "Taufruf" auf 0 gesetzt.

Wichtig ist dabei zuerst die LOW's zu senden da die Ausertung im 
Empfänger ja bei den Highs erst beginnen kann!

Bei der Übertragung sende ich zunächst 9 mal low und dann das Startbit 
und zeige damit den Beginn einer Datenübertragung an.

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.