Atmega48 Прерывания от таймера

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
sfinexer
Родился
Сообщения: 8
Зарегистрирован: Пн май 16, 2011 22:16:06

Atmega48 Прерывания от таймера

Сообщение sfinexer »

Не могу разобраться с прерываниями...

Суть проблемы проста, надо в WinAVR для atmega48 на СИ написать инициализацию таймера/счетчика срабатываюший и обнуляемый при превышении некого значения (например 300 тактов).
При этом должно произойти прерывание и запустится процедура обработки прерывания.

Если кто поможет буду очень рад...
Реклама
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: Atmega48 Прерывания от таймера

Сообщение Мастер Ломастер »

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

#include <avr/io.h>
#include <avr/interrupt.h>

ISR(TIMER0_COMPA_vect){
   PORTB ^= 1; // подрыгивание ногой порта Б по прерыванию
}

int main(void){
   DDRB = 1;
   TCCR0A = _BV(WGM01); // режим СТС
   OCR0A = 300; // сброс через 300 тактов и прерывание
   TCCR0B = _BV(SC02); // деление тактовой на 256
   TIMSK0 = _BV(OCIE0A); // разрешаем прерывание по совпадению А
   sei();
   while(1);
}
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
Аватара пользователя
md5sum
Вымогатель припоя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Re: Atmega48 Прерывания от таймера

Сообщение md5sum »

Мастер Ломастер писал(а): OCR0A = 300; // сброс через 300 тактов и прерывание
Сильно! Для 8 разрядного таймера...
— Не говорите мне что делать и я не скажу куда Вам идти...
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: Atmega48 Прерывания от таймера

Сообщение Мастер Ломастер »

md5sum писал(а):
Мастер Ломастер писал(а): OCR0A = 300; // сброс через 300 тактов и прерывание
Сильно! Для 8 разрядного таймера...
ну поспешил :oops: замените везде 0 в описании битов и регистров на 1 и все будет ништяк :))) идея во всяком случае должна быть понятна
битва с дураками проиграна, победители торжествуют. слава победителям!
Реклама
Эиком - электронные компоненты и радиодетали
sfinexer
Родился
Сообщения: 8
Зарегистрирован: Пн май 16, 2011 22:16:06

Re: Atmega48 Прерывания от таймера

Сообщение sfinexer »

надо тока
TCCR0B = _BV(CS02);
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»