Страница 1 из 1

Atmega64 перестал работать ШИМ

Добавлено: Чт мар 08, 2018 20:48:31
RadioKotyara
Здравствуйте, уважаемые радиолюбители. Снова Atemga64 и снова загадочные неисправности...
Был у меня настроен Timer1 на FAST PWM 8 бит, работал... Но при регулировке яркости подсветки, драйвер резковато менял яркость при таком разрешении. Нужно было регулировать в диапазоне 1.1-3.3В, и решил я настроить ШИМ на 10 бит, дабы получить плавность в этом диапазоне.
Для этого нужно лишь изменить один бит.
Запускаю, а ШИМа там уже нет, либо постоянно 1 (при настроенном ШИМе), либо 0 при отключенном.
Возвращаю всё "взад", а оно и так уже не хочет работать. Удалил вообще весь код и оставил только код настройки таймера, и всё равно не работает...
Спойлер

Код: Выделить всё

#include <avr/io.h>
#include <avr/interrupt.h>
#define F_CPU 16000000L
#include <util/delay.h>
#include <stdio.h>
int main(void)
{
   DDRB |= (1 << DDRB5)|(1 << DDRB6);
   TCCR1A = 0;
   TCCR1B = 0;
   TCCR1A = (1<<COM1B1)|(1<<WGM10);
   TCCR1B = (1<<WGM12)|(1<<CS10);
   OCR1B = 0;
   sei(); 
   while(1)
   {
   OCR1B++;   
   _delay_ms(100);
   }
}
Очень нужна помощь, может я где-то упустил что?
Или мог ли я каким-то образом подпалить её, и убить таймер вообще?
Спасибо.

Re: Atmega64 перестал работать ШИМ

Добавлено: Вс мар 11, 2018 20:31:42
RadioKotyara
Проблема решилась переключением ШИМа на OCR1A. Скорее всего порт B подпалил. Когда включал оба вместе, ни тот ни другой не работал.