PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie nutze ich alle 4 Hardware PWM's des atmega32/RN-Control?



Willa
01.12.2007, 15:46
Hallo!
Leider hat die Suche hier im Forum nichts ergeben (bzw. Sie hat ca 300 Ergebnisse geliefert, aber das richtige war nicht dabei...)
Ich habe einen Roboter mit 2 Getriebemotoren. Die werden mit einem L298 angesteuert. Jetzt würde ich gerne noch den Onboard L293D benutzen um ein paar LEDs anzusteuern.
Im Moment benutze ich folgenden Code für den L298 (aus dem Programmbeispiel des RN-Control)



'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02
Der L293D ist an die selben Ports angeschlossen, das stört ja im Moment nicht, weil ich ihn noch nicht benutze. Die Ports müsste ich dann natürlich ändern wenn ich beide Motortreiber benutzen will.

Wenn ich es richtig verstehe kann ich mit dem Timer2 nun noch 2 andere PWMs "herstellen". Nur wie...? Aus welchen Ports kommt das Singnal dann raus? Könnte jemand evtl. ein BeispielCode aufschreiben? Vielleicht habt ihr das ja schon mal programmiert und müsst dann Copy+Paste benutzen....

Vielen Dank für eure Hilfe und viele Grüße,
William

linux_80
01.12.2007, 17:26
Hallo,

beim Mega32 kann:

Timer0 1x PWM 8Bit an OC0
Timer1 2x PWM -16Bit an OC1A / OC1B
Timer2 1x PWM 8Bit an OC2

Ob man den Timer0 per Bascom-Config-Befehl dazu bringen kann PWM zu machen weiss ich jetzt nicht, ging früher nicht.
Ansonsten müsstest Du die Register per Hand setzen.

oberallgeier
01.12.2007, 23:08
Hi Willa,

das müsste im doc2503 stehen - ab S 80 oder ab S 114 - da sind die Timer beschrieben