Например TDA7294

Форум РадиоКот • Просмотр темы - Atmega48 Прерывания от таймера
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Чт дек 18, 2025 20:11:54

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 5 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Atmega48 Прерывания от таймера
СообщениеДобавлено: Пн май 16, 2011 22:21:42 
Родился

Зарегистрирован: Пн май 16, 2011 22:16:06
Сообщений: 8
Рейтинг сообщения: 0
Не могу разобраться с прерываниями...

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

Если кто поможет буду очень рад...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega48 Прерывания от таймера
СообщениеДобавлено: Вт май 17, 2011 07:37:37 
Поставщик валерьянки для Кота

Карма: 1
Рейтинг сообщений: 5
Зарегистрирован: Ср май 11, 2011 21:37:45
Сообщений: 1995
Откуда: Цветочный город
Рейтинг сообщения: 0
Код:
#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);
}

_________________
битва с дураками проиграна, победители торжествуют. слава победителям!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega48 Прерывания от таймера
СообщениеДобавлено: Вт май 17, 2011 07:55:05 
Вымогатель припоя
Аватар пользователя

Зарегистрирован: Вт окт 27, 2009 22:39:19
Сообщений: 672
Откуда: Москва
Рейтинг сообщения: 0
Мастер Ломастер писал(а):
OCR0A = 300; // сброс через 300 тактов и прерывание

Сильно! Для 8 разрядного таймера...

_________________
— Не говорите мне что делать и я не скажу куда Вам идти...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Atmega48 Прерывания от таймера
СообщениеДобавлено: Вт май 17, 2011 09:03:25 
Поставщик валерьянки для Кота

Карма: 1
Рейтинг сообщений: 5
Зарегистрирован: Ср май 11, 2011 21:37:45
Сообщений: 1995
Откуда: Цветочный город
Рейтинг сообщения: 0
md5sum писал(а):
Мастер Ломастер писал(а):
OCR0A = 300; // сброс через 300 тактов и прерывание

Сильно! Для 8 разрядного таймера...

ну поспешил :oops: замените везде 0 в описании битов и регистров на 1 и все будет ништяк :))) идея во всяком случае должна быть понятна

_________________
битва с дураками проиграна, победители торжествуют. слава победителям!


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Atmega48 Прерывания от таймера
СообщениеДобавлено: Сб май 21, 2011 11:49:22 
Родился

Зарегистрирован: Пн май 16, 2011 22:16:06
Сообщений: 8
Рейтинг сообщения: 0
надо тока
TCCR0B = _BV(CS02);


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Форум закрыт Эта тема закрыта, Вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y