mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM Eingang


Autor: Sven Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Johanes Eller (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.