Hallo ! Wer kann mir mal erklären, wie ich bei einem AVR (Mega8) mittels BAscom die PWM Kanäle programmiere/anspreche ? (Bitte keinen Link auf eine englische Site) ;-) Danke Stefan
Hi, so gehts bei einem 2313er bim Mega8 sicher nicht viel anders. $regfile = "2313def.dat" $crystal = 10000000 '10 MHz Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1 Compare1a = 128 '50% Do Loop End Gruss Gerhard
@Gerhard Ersteinmal Danke für deine Hilfe. Bei mit in Bascom muss ich aber den Time1 so schreiben : Config Timer1 = Pwm , Pwm = 8 , Prescale = 1, Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Also mit "Prescale" am Ende kommt eine Fehlermeldung. @Dirk Ja, bei mir mit geändereter Config Anweisung hat eine LED 50% Stefan
Hallo, @Stefan komisch, lief bei mir so in der Demo und läuft auch jetzt so in der Vollversion 1.11.7.3. Nochmals beide Arten probiert, funzen beide. Gruss Gerhard
Hallo, Habe ich das jetz richtig verstanden: Wir sagen dem µC, dass Timer1 als PWM funktionieren soll. Dann setzen wir das Compare1A Register auf einen Wert von 0-255. Und jeder taktzyklus lässt das Register mit dem Pin (indirekt) vergleichen. Wenn Ich eine niedrige Zahl in das Register geschrieben hab(meinetwegen 64), dann wird der Ausgangs-Pinn immer zu 256/64(=25%) High. und zu 75% low. das ganze dann immer hintereinander. Wenn ich eine höhere Zahl hereinschreibe, (so 192) dann wird der Pin 75% high gehalten und 25% low gesetzt. Bei 1mhz quarztakt wären dass bei einem prescaling von 1 dauert eine Periode exakt 1000ns(=1us). davon zB 75% high sind 750nS und 25% low sind 250nS low time (ausgenommen den rise und fall times). Richtig? brauch ich nur das eine Register mit einem byte beschreiben und feddich? PS: wofür ist die angabe "Compare B Pwm = Clear Down" Wofür brauch ich denn den OCB1 ?!
die Timingberechnung ist falsch. Bei 1MHz benötigt ein uP-Takt 1us, je nach Timer (8 oder 16 Bit) dauert eine Periode 256 oder 65xxx us. Bei 8 Bit hast du daher ca. 190us High und ca. 60us Low. grüsse leo9
AH ok. Verstehe Komisch Bascom meckert an dem Compare1A = 128 rum ?! Was könnte das sein. Ich benutz nen ATtiny26 mit 1mhz internem chiptakt.
Wenn ich nen 90S8515 einstelle, klappts ohne zu meckern. dann mach ich es halt damit. und nem 6mhz keramik resonator (ja, funktioniert). Bleibt die Periodenzeit noch bei 256, wenn ich 8bit habe?
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.