Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Atmega16 прерывание от TC0
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
MiklPolikov
Коллеги, подскажите, почему у меня не происходит прерывание от TC0 ?


SREG |= (1<<7); //0бщее разрешеие прерываний;

OCR0=100; // досчитываем до 100
TIMSK|=(1<<OCIE0); // compare interrupt enable
TCCR0|=(1<<CS02)|(1<<CS00) //делитель 1024



//прерывание от таймера 0
ISR(TIMER0_COMPA_vect)
{
return;
}
Александр Куличок
адрес вектора TIMER0_COMPA_vect правильно указан? У таймера 0 вроде нет модулей сравнения А и В., он только один
MiklPolikov
Цитата(Александр Куличок @ Nov 25 2010, 08:28) *
адрес вектора TIMER0_COMPA_vect правильно указан? У таймера 0 вроде нет модулей сравнения А и В., он только один


Спасибо огромное !!! Сам бы не заметил .
Сергей Борщ
QUOTE (MiklPolikov @ Nov 25 2010, 07:05) *
TCCR0|=(1<<CS02)|(1<<CS00) //делитель 1024
А что было в других битах этого регистра вас не интересует? А если он был настроен на какой-то другой режим? Почему бы не прописать явно все нужные биты присвоением нового значения, а не накладыванием маски? Это и надежнее и на целое слово короче и на такт быстрее.
MiklPolikov
Цитата(Сергей Борщ @ Nov 25 2010, 14:30) *
А что было в других битах этого регистра вас не интересует? А если он был настроен на какой-то другой режим? Почему бы не прописать явно все нужные биты присвоением нового значения, а не накладыванием маски? Это и надежнее и на целое слово короче и на такт быстрее.


Там же 0 после запуска.
Вы советуете вообще во все регистры которые есть что-то писать в начале программы ?
Сергей Борщ
QUOTE (MiklPolikov @ Nov 25 2010, 13:45) *
Там же 0 после запуска.
Вы советуете вообще во все регистры которые есть что-то писать в начале программы ?
Все регистры писать - это уже праноя. Хотя, у меня программа получает управление после загрузчика и чтобы не задумываться - что там наделал загрузчик я прописываю все основные регистры (например, достаточно запретить UART если он не используется, прописывать скорость не нужно).
Но зачем делать ИЛИ, если явное присваивание и короче и быстрее в смысле результирующего кода?
MiklPolikov
Цитата(Сергей Борщ @ Nov 25 2010, 15:34) *
Но зачем делать ИЛИ, если явное присваивание и короче и быстрее в смысле результирующего кода?



Это исключительно дело вкуса. Если включена минимальная оптимизация.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.