Gast
#2961713
Hallo, ich möchte gerne einen ATMEGA1250 (auf einem Arduino MEGA Board) ein PWM per software aufbauen. Das auf dem Board bestehende 8Bit PWM reicht mir nicht aus- es sollten schon 10 oder 12 Bit sein. Folgenden Code habe ich geschrieben: #include <avr/io.h> #include <avr/interrupt.h> void setup() { // initialize the digital pin as an output. DDRB= B11111111; // set PORTB (digital 13-8) to outputs cli(); // disable global interrupts TCCR1A = 0; // set entire TCCR1A register to 0 TCCR1B = 0; // same for TCCR1B TCCR1B |= (1 << CS10); // Set CS10 bit only for prescaler 1 sei(); // enable global interrupts: } void loop() { if (TCNT1 < 5){ PORTB=B10000000; } if (TCNT1 > 20000){ PORTB=B00000000; } } Leider bekomme ich ein ziemlich unregelmässiges PWM welches deutlich sichtbar (mal mehr- mal weniger) flackert, aber auch für kurze Zeit ein unsichtbares PWM generiert. Es ist keinesfalls ein regelmässiges Verhalten. Kann mir jemand helfen? Bin ich mit der Timeridee vielleicht auf völlig auf dem Holzweg?