PWM mit Atmega644

technicus123

Neues Mitglied
13. Feb. 2009
118
0
0
Sprachen
Hi,

ich möchte bei einem atmega644 mit dem Ausgang PD.7 ein PWM Signal ausgeben. Wie definiere ich den PD.7 in Bascom als PWM Ausgang? Ich weiß nicht wie ich den deklarieren soll.

Gruß

Technicus
 
Hallo Technicus!

Ich habe mir eben nur mal schnell das Datenblatt des Mega644 gezogen....

Auf PinD.7 liegt der OC2A !

Das bedeutet, um dort ein PWM-Signal zu erhalten musst du den Timer2 als PWM konfigurieren.

Timer2 ist allerdings ein 8bit Timer und kein 16bit wie Timer1!

Hilft dir das schon weiter, oder wo genau liegt das Problem?


Grüße,
Cassio
 
Hi Cassio,

das wusste ich schon. Ich habe mich nur falsch ausgedrückt.
Ich muss ja den Timer 2 jetzt in bascom aktivieren. Jetzt stelle ich mir nur die Frage ob ich für OC2A "COMPARE2A = xxx" eingeben muss um den Ausgangssignal am Pin zu verändern. Das ganze will ich unter Bascom machen. Ich stehe da bloß etwas auf dem Schlauch.

Gruß
Technicus
 
Auf Seite 139 steht die Formel für FastPWM Mode:
Code:
                     f_CLK_I/O
f_OCNxPWM= ------------
                      (N*256)

Für Phase Correct PWM steht die Formel für die Frequenz auf Seite 141
Code:
                     f_CLK_I/O
f_OCNxPWM= ------------
                      (N*510)

Und die Erklärung wie wo was eingestellt werden muss steht dort auch.

Die Frequenz F_OcNxPWM stellst du mit dem OCNx Registern ein, Formel im CTC Mode auf Seite 138:
Code:
                   f_CLK_I/O
f_OCNx = ------------------
                 2*N*(1+OCRnx)
Das müsstest du nach OCR umstellen, dann hast du eine Funktion OCR(f_OCN). Heist: Änderst du den Wert im OCN Register veränderst du die Frequenz mit der der Spaß überläuft. Die Frequenz kannst du nun hernehmen und in deiner PWM Formel verwenden um die PWM Frequenz rauszukriegen (ich meine mich jedenfalls an die Thematik vor zwei Semestern zu erinnern, da haben wir das glaube ich so aufm Mega32 gemacht ...)


Ich glaub das woltlest du wissen oder?
 
Hallo Technicus!

Vielleicht habe ich aber die Frage auch nur falsch verstanden.... :hmmmm:

Mit dem Mega644 habe ich zwar selber noch nicht gearbeitet kann mir aber vorstellen, dass BASCOM den PWM-Mode auf dem 8bit-Timer2 nicht beherrscht.

Wenn das dein Problem ist, musst du leider alles von Hand einstellen. :rolleyes:

Der Mega644 hat lt. Datenblatt für Timer2 gleich zwei Timer-Register:
TCCR2A + TCCR2B

Mit diesen Registern kannst du die Funktionsweise und auch den Prescaler einstellen. (siehe Datenblatt Punkte 15.8.1 und 15.8.2)

In BASCOM musst du die Anweisungen dann im Rumpf direkt einfügen...
Zum Beispiel:
' ================================================
' Konfiguriere den Timer2
TCCR2A = &B01000001
TCCR2B = &B10000001


Deinen Vorgabewert für die Impulsbreite musst du dann im BASCOM-Programm aber auch direkt übergeben....
Zum Beispiel:


Probiere es einfach mal aus. Du kommst ganz schnell dahinter.

Ich hoffe, deine Frage nun richtig verstanden zu haben. ;)

Schöne Grüße,
Cassio
 
Hi,

Black Devil, das ganze kenn ich. Aber trotzdem Danke.

Cassio, genau das was ich wissen wollte:adore:. Ebenfalls Danke.

Gruß
Technicus
 
Hi,

Black Devil, das ganze kenn ich. Aber trotzdem Danke.

Cassio, genau das was ich wissen wollte:adore:. Ebenfalls Danke.

Gruß
Technicus

Am besten das nächste mal so konkret schreiben damit auch ein non-Bascom User sieht "aha liegt nich am Verständnis des Chip sondern an Bascom" ;)
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)