реклама на сайте
подробности

 
 
> ШИМ в ATtiny13
dominator
сообщение Feb 7 2011, 22:14
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 7-02-11
Пользователь №: 62 780



Добрый вечер!

Пытаюсь сделать светящийся кристал, который был не так давно описан на хабре: http://habrahabr.ru/blogs/DIY/111671/ (там код для ATtiny13, снизу страницы ссылки на две другие части описания). Общая идея в том, что при прикосновении человека должен постепенно разгораться светодиод, потом - гаснуть. Все вроде бы просто, исходный код программы есть, но почему-то не работает ШИМ.
Работаю в связке AVR Studio 4.16+WinAVR 2008-12-05+Proteus VSM. При отладке заметил, что при прохождении строки кода TCCR0A=0x83 вместо значения 0х83 (COM0A1, WGM01, WGM00) этому параметру присваивается значение 0х30 (COM0B1, COM0B0). Может, кто подскажет, почему такое может быть? Рад буду любым идеям.

Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
skyled
сообщение Feb 8 2011, 13:27
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 217
Регистрация: 11-06-10
Пользователь №: 57 868



Код
void SetTimer(char Mod)         //Функция для быстрой переинициализации таймера с режима сенсора на ШИМ
{
    if(Mod)            //1,  проверка сенсора
    {    
        TCCR0A=0x00;
        TCCR0B=0x00;
        TCNT0=0x00;
    }
else            //0,  ШИМ
    {
        TCCR0A=0x83;
        TCCR0B=0x00;
        TCNT0=0x00;
    }
}
Это единственное место, где упоминается этот регистр. При (Mod==0) должно присваивать 0x83. А у Вас что? Заново вречную при латинской раскладке наберите строчку и ту же строчку выше.

строчки с присваиванием нулей выкинте вообще.

Смените опцию оптимизации.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th August 2025 - 05:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01367 секунд с 7
ELECTRONIX ©2004-2016