Forum: Mikrocontroller und Digitale Elektronik Atmega32 4xPWM bascom


von christian (Gast)


Lesenswert?

Hallo


Im Datenblatt des Atmega32 steht, dass er vier PWM Ausgänge besitzt.
Wie Kannich diese in Bascom ansprechen.
2 klappen ja noch (hab ich von roboternetz.de/wissen) (Keine werbung)

Aber wie kann ich alle vier ansteuern?

Infos, dass keine unnötigen diskussionen aufkommen:

Atmega32
Brauche nur die Configuration und ein Programmbeispiel, um alle vier 
anzusprechen



Vielen Dank



Christian

von Der Teufel (Gast)


Lesenswert?

Bascom Anfragen werden in einem C-Forum nicht beantworted!

http://bascom-forum.de/

von christian (Gast)


Lesenswert?

Hier in diesem Forum gibt es aber noch mehr bascom anfragen?!?!?!!

von Der Teufel (Gast)


Lesenswert?

Die werden aber alle gelöscht.
Das Bascom Forum ist dein Freund.

von Sinusgeek (Gast)


Lesenswert?

@Teufel: Du schwätzt dummes Zeugs, BASCOM-Fragen werden hier sehr wohl 
beantwortet. Bist wohl auf der Jagd nach "Kunden" für Dein 
Kindergarten-Forum? Oder wie soll man Deine aggressive 
Bascom-Forum-Werbung verstehen?

@Christian: Schau Dir mal das AVR-Buch von Roland Walter an, das müsste 
auch online als Leseprobe auf seiner HP stwhen. Dort wirst Du auf fast 
jeder zweiten Seite darauf hingewiesen, dass das Benutzen von BASCOM den 
Blick ins Datenblatt nicht erspart. Du erfährst auch, dass man nicht 
alles mit den CONFIG-Befehlen von BASCOM machen muss, sondern dass man 
die I/O-Register (der Timer und anderen integrierten Hardware) auch von 
Hand bedienen kann, so wie es auch der C- oder ASM-Programmierer macht.

Zu den 4 PWMs... Schau zuerst auf das Anschluss-Schema auf Seite 2 des 
Mega32-Datenblatts. Dort stehen Namen an den Pins. Suche nach den 
PWM-Pins, sie heißen OCxx, OC für Output-Compare, x(0,1,2) für die 
Timernummer und x (A,B) für die Unternummer innerhalb des Timers. Nun 
weißt Du erstmal, welche Timer mit PWM ausgestattet sind. Jetzt kannst 
Du im Kapitel des jeweiligen Timers nach der Registerbeschreibung suchen 
und erfährst, welche Bits in welchen I/O-Registern gesetzt werden 
müssen, um die gewünschte Funktion einzuschalten. Damit kannst Du auch 
die Modi aktiveren, die BASCOMs CONFIG nicht unterstützt.

Zuerst solltest Du aber mal die Randbedingungen klären, vielleicht 
genügt Dir ja eine relativ geringe PWM-Frequenz oder Auflösung, die Du 
in Software einfacher realisieren kannst. Eine Lichtsteuerung mit 16 
PWMs in Software macht ein Mega32 völlig nebenbei, während er noch einen 
Ziffern-Tastenblock abfragt und ein LCD4004 steuert. Das war allerdings 
in ASM.

~

von Jan (Gast)


Lesenswert?

1.)
in den Registern Tccr1a,Tccr1b,Tccr2 und Tccr0 Eigenschaften der Kanäle 
festlegen
PWM Frequenz, Phase, Bitbreite usw...
->siehe Datenblatt

2.)
den Registern Ocr1al,Ocr1bl,Ocr2 und Ocr0 den gewünschten 
Helligkeitswert zuweisen

3.)
Beim Anschluss die festgelegten Pins beachten
Ocr1al(PWM1) - PD5
Ocr1bl(PWM2) - PD4
Ocr2  (PWM3) - PD7
Ocr0  (PWM4) - PB3
------------------------------------------------------------------------ 
-
In Bascom sollte das dann etwa so aussehen:

Tccr1a = &B10100001
Tccr1b = &B00000010
Tccr2 = &B01100010
Tccr0 = &B011
Assr = &B00000000

Ocr1al = 127
Ocr1bl = 255
Ocr2 = 15
Ocr0 = 0


Gruß Jan

von Jan (Gast)


Lesenswert?

Tccr0 ist natürlich ebenfalls 8 Bit breit, also

Tccr0 = &B01100010

oder wies auch immer eingestellt werden soll

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
Noch kein Account? Hier anmelden.