Перейти к содержанию
    

Atmega16 прерывание от TC0

Коллеги, подскажите, почему у меня не происходит прерывание от 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 вроде нет модулей сравнения А и В., он только один

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

адрес вектора TIMER0_COMPA_vect правильно указан? У таймера 0 вроде нет модулей сравнения А и В., он только один

 

Спасибо огромное !!! Сам бы не заметил .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

TCCR0|=(1<<CS02)|(1<<CS00) //делитель 1024
А что было в других битах этого регистра вас не интересует? А если он был настроен на какой-то другой режим? Почему бы не прописать явно все нужные биты присвоением нового значения, а не накладыванием маски? Это и надежнее и на целое слово короче и на такт быстрее.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А что было в других битах этого регистра вас не интересует? А если он был настроен на какой-то другой режим? Почему бы не прописать явно все нужные биты присвоением нового значения, а не накладыванием маски? Это и надежнее и на целое слово короче и на такт быстрее.

 

Там же 0 после запуска.

Вы советуете вообще во все регистры которые есть что-то писать в начале программы ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там же 0 после запуска.

Вы советуете вообще во все регистры которые есть что-то писать в начале программы ?

Все регистры писать - это уже праноя. Хотя, у меня программа получает управление после загрузчика и чтобы не задумываться - что там наделал загрузчик я прописываю все основные регистры (например, достаточно запретить UART если он не используется, прописывать скорость не нужно).

Но зачем делать ИЛИ, если явное присваивание и короче и быстрее в смысле результирующего кода?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но зачем делать ИЛИ, если явное присваивание и короче и быстрее в смысле результирующего кода?

 

 

Это исключительно дело вкуса. Если включена минимальная оптимизация.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...