www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik PWM mit BASCOM AVR (Mega8)


Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Gerhard Humer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Dirk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

theroetisch sollte doch jetzt z.B. eine LED an OC1A zu 50% leuchten
oder?

Mfg Dirk

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Gerhard Humer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Klinkerstein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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 ?!

Autor: leo9 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Klinkerstein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
AH ok. Verstehe

Komisch Bascom meckert an dem
Compare1A = 128
rum ?!

Was könnte das sein. Ich benutz nen ATtiny26 mit 1mhz internem
chiptakt.

Autor: Klinkerstein (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.