PWM mit BASCOM AVR (Mega8)

Gast
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
Gast
@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
Gast
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
Gast
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 ?!
Gast
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
Gast
AH ok. Verstehe

Komisch Bascom meckert an dem
Compare1A = 128
rum ?!

Was könnte das sein. Ich benutz nen ATtiny26 mit 1mhz internem
chiptakt.
Gast
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?

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.