Hallo zusammen, Kurz und knapp und zwar arbeite ich mit einem Attiny44. An diesem habe ich einen Poti angeschlossen, um die Spannung für den AD-Wandler zu ändern. Anhand der gemessenen Spannung vom AD-Wandler möchte ich eine PWM-Frequenz ausgeben. Soweit klappt alles (AD-Messung & PWM-Frequenz), nur muss ich im laufenden Betrieb, wenn ich den Widerstand vom Poti veränder(die Spannung verändert sich auch) den Mikrocontroller abschalten und anschließend anschalten, damit sich die PWM-Frequenz ändert. Jemand eine Idee? Ich habe um die PWM Frequenz zu erzeugen, den Pin PA6 gewählt und den Fast PWM Mode 14. Dort zählt er bis ICR1 und toggelt das bit bei OCR1A.
Vergessen den AD-Wandler bei jeder neuen PWM Periode neu einzulesen(oder jeder 10. Periode).
Und natürlich ins Output Compare Register zu schreiben, am besten per Overflow interupt.
Och, ich lass den ADC sein eigenes Ding machen im Freerun/ADC Interrupt und lese alle hundert PWM Perioden mal einen neuen Wert ins OC Register ein. Dann kann der ADC Wert vom Poti auch noch schön gemittelt sein und flackert nicht, wenn das Poti schon etwas älter ist :-)
Echt aufschlussreicher Beitrag! Wollte mir gerade einen Tiny44 leisten. Taugt wohl nix: Macht nur das, was ich ihm einprogrammiere, aber nicht das, was ich eigentlich gedacht habe...
Hallo Emil, Soll sich wirklich die (1) PWM-Frequenz ändern? Das meint, Tastverhältnis on/off = m:n bleibt, aber die Frequenz ändert sich? Oder soll sich das nicht vielmehr (2) das Tastverhältnis ändern? Meine Kenntnisse beziehen sich auf den 328. Sofern man die Timer-Register im Griff hat, sollte beides kein Problem sein. Vielleicht bestätigst (korrigierst) Du Deine Fragestellung und postest das Programm dazu. Gucky
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.