Gast
#176964
Hallo...
ich habe ein Probelm beim Versuch ein PWM Signal mit dem Timer 0 des
Atmega 32 zuerzeugen.
Als Programm hab ich folgendes formuliert:
#include <avr/io.h>
int main (void)
{
//Port B als Ausgang definieren
DDRB = 0xFF;
//fast PWM, kein prescaler, low bei Comparematch high bei overflow
TCCR0 = (1 << WGM01) | (1 << WGM00) | (1 << COM01);
//zum Test Compare-Register->Tastverhältnis 50%
OCR0 = 0x7f;
//Timer mit CPU Takt loslegen lassen
TCCR0 = (0 << CS02) | (0 << CS01) | (1 << CS00);
//Endlosschleife
for(;;);
}
Das Ergebnis dieser Routine läßt sich einfach zusammenfassen: Es
passiert überhaupt nix!
HAb das ganze dann mal umgestrickt und das PWM Signal per Software über
ISRs realisiert und da ging es. Also Pin B3 bei Timer0 Overflow setzen
und bei Comparematch rücksetzen.
Hab auch schon den Controller gewechselt, aber alles ohne Erfolg.
Bin für jeden Hinweis dankbar.
Tommy