Например TDA7294

Форум РадиоКот • Просмотр темы - [Решено]TIMER1 - прерывание по совпадению
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт апр 03, 2026 07:54:38

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


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



Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: [Решено]TIMER1 - прерывание по совпадению
СообщениеДобавлено: Вс сен 02, 2012 14:42:49 
Встал на лапы
Аватар пользователя

Карма: 1
Рейтинг сообщений: 0
Зарегистрирован: Чт дек 29, 2011 16:25:56
Сообщений: 83
Рейтинг сообщения: 0
Добрый день, Форумчане! Помогите пожалуйста разобраться с таймером1. Необходимо после отлавливания внешнего прерывания INT0 запустить таймер1 с прерыванием по совпадению. Период таймера от 200 до 20000. Внешнее прерывание я отлавливаю и запускаю таймер1, но прерывания нет, хотя таймер тикает и при совпадении обнуляется и идет дальше по кругу - в отладчике смотрел...Помогите найти, где я накосячил...Работаю в avr studio, мк atmega16. Вот код:
Код:
void INCUBATOR_Init()
{
   //TIME_Init();
   
   DDRB  &= (1 << 0) | (1 << 1);
   PORTB |= (1 << 0) | (1 << 1);
   
   DDRC |= (1 << 0);
   PORTC &= ~(1 << 0);
   
   DDRD  &= ~(1 << 2);
   PORTD |= (1 << 2);
   
   GICR  |= (1 << INT0); //разрешили прерывание
   MCUCR = 0x00;
   
   SREG |= (1 << 7);
}
//----------
ISR(INT0_vect)
{
   if(!enableZeroCross)
   {
      enableZeroCross = true;
      
      OCR1A   = delay_dimmer; // Значение для сравнения
      TCNT1   = 0;     // счетчик в ноль
      TCCR1B |= (1 << CS10) | ( 1<< WGM12);  // без предделителя и режим СТС по совпадению
      TIMSK  = (1 << OCIE1A); // Разрешить прерывание при совпадении TCNT1 и OCR1A
   }
}
//----------
ISR(TIMER1_COMPA_vect)
{
   if(enableZeroCross)
   {
      TCNT1 = 0;
      TCCR1B = 0x00;
      
      PORTC |= (1 << 0); // включить симмистор
      _delay_us(50);
      PORTC &= ~(1 << 0);
      enableZeroCross = false;   
   }
}


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ 1 сообщение ] 

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


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

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


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