Код: Выделить всё
DDRB |= (1<<1);
TCCR0B |= (1<<WGM01) | (1<<WGM00) | (1<<CS02) | (1<<CS01) | (1<<COM0A0);
OCR0B = 0xff/2;Вот такой код конфигурации ШИМ. Что может быть не так?
Код: Выделить всё
DDRB |= (1<<1);
TCCR0B |= (1<<WGM01) | (1<<WGM00) | (1<<CS02) | (1<<CS01) | (1<<COM0A0);
OCR0B = 0xff/2;Код: Выделить всё
TCCR0B |= (1<<WGM01) | (1<<WGM00) | (1<<CS02) | (1<<CS01) | (1<<COM0B0);
^
Пишу в atmel studio, ide исправила COM00 на COM0B0oleg110592 писал(а):а в регистре TCCR0B есть бит COM0B0?
То есть таймер конфигурируется с помощью TCCR0A и TCCR0B?Z_h_e писал(а):WGM01, WGM00, COM0B0 - это биты регистра TCCR0A.
Код: Выделить всё
TCCR0A |= (1<<WGM01) | (1<<WGM00) | (1<<COM0B0);
TCCR0B |= (1<<CS01) | (1<<CS02);
OCR0B = 0xff/2;Код: Выделить всё
DDRB=1<<PB1;
while (1) PINB=1<<PB1;Код: Выделить всё
#include <stdint.h>
#include <avr/io.h>
int main(void)
{
//9.6
CLKPR = (1 << CLKPCE);
CLKPR = (0 << CLKPCE) | (0 << CLKPS3) | (0 << CLKPS2) | (0 << CLKPS1) | (0 << CLKPS0);
DDRB=(0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (1<<DDB1) | (0<<DDB0);
// fast PWM
TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (1<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (1<<WGM00);
TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (1<<CS00);
OCR0B=0x80;
//dis
ACSR=(1<<ACD);
while(1)
{
}
}порт исправенZ_h_e писал(а):Проверьте исправность порта.