void initmotor(void)
{
OCR3A = 0;
OCR3B = 0;
TCCR3A = BV(WGM31) | BV(WGM30) ; /* set timer/counter 3 to fast PWM mode
7 */
TCCR3A |= BV(COM3A1) | BV(COM3B1); /* Clear OCnA/OCnB/OCnC on compare
match when up-counting. */
TCCR3B = BV(CS30) | BV(WGM32) ; /* prescale: 1 @ 16 MHz, 10 bit PWM
overflows @ 15625 HZ */
// turn everything off
OCR3A = 0;
OCR3B = 0;
DDRE |= BV(PORTE3)|BV(PORTE4); /* enable PWM outputs */
}
According to how I read the data sheet this should be setting up
(Page 133) Mode 7 fast PWM 10 bit with no prescale which should give me
15.6K PWM
And setting COM3A1 and COM3B1 should turn the pin to 0 when the counter
hits the value I set in OCR3A or OCR3B?
Is this COM3A1 part correct?Message
Can someone double check my assumptions ATMega128 PWM
2005-01-28 by wbounce