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
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.
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...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.