Hallo, habe folgendes Problem: Ich muss ein digitales Signal auf einer einzelnen Leitung erzeugen, bei jedes einzelne Bit ca. 4 µs dauert und folgendermassen kodiert ist: 0-Bit: 3 µs low danach 1µs high 1-Bit: 1µs low danach 3µs high Wie realisiere ich das am besten? Habe bisher noch nie mit PWM gearbeitet, hatte aber eine ungefähre Ahnung wie PWM funktioniert und dachte ich könnte den Fast-PWM-Mode dafür benutzen - indem ich einfach eine Zykluslänge von 4 µs einstelle, und dann noch eine Schwelle bis zu der ein low signal und ab der bis zum Ende des Zyklus ein high-Signal gesendet wird, und ich zu beginn jedes Zyklus die Schwelle einfach so einstelle wie ich sie für das aktuelle Bit gerade brauche. Als ich soeben die Beschreibung von PWM gelesen habe habe ich aber den Eindruck erhalten dass das mit Fast-PWM gar nicht geht, weil ich zwar die Schwelle beliebig einstellen kann - nicht jedoch die Gesamt-Zyklus-Dauer (bzw. bei der Gesamt-Zyklus-Dauer nur ganz bestimmte Werte und mindestens 256 CPU-Takte nehmen kann). Frage: Ist das so korrekt, gibt es keine Möglichkeit das per PWM zu machen? Und gibt es vielleicht noch eine andere Möglichkeit an die ich bisher gar nicht gedacht habe?
PWM ist hierfür weniger (nicht) geeignet, da dort "feste" Tastverhältnisse eingestellt werden. a) 3 low und 1 high ist kein Thema: Periode 4, Duty 1 b) 1 low und 3 high : Periode 4, Duty 3 ABER: Das läuft dann fortwährend. Du möchtest aber zwischen a) und b) fortwährend "moduliert" umschalten. Das macht mit PWM keinen Sinn. Evtl. kann man mit SPI entsprechende Muster rausschicken oder man muss das gleich "zu Fuß" tun. Wenn das Raster "starr" ohne Lücken sein muß, brauchst Du (mind.) einen Timer-Interrupt mit hier 1 us. Wenn der auftritt, dann den Bitwechsel ausführen (wenn an dieser Stelle erforderlich); sonst INT gleich beenden und in main auf nächsten INT warten.
Wie wäre es mit einem CMOS 4017, 1 MHz Takt, Ausgang 4 an Reset, Ausgang 0 über Inverter CMOS 40106 für 1/4 Low - 3/4 High, Ausgang 1, 2 und 3 über 3 Dioden und PullDown an Inverter CMOS 40106 für 3/4 Low - 1/4 High, hinter den beiden Invertern kann ausgewählt werden.
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.