Страница 1 из 1

Пjмогите настроить таймер счетчик T1 в atmega16

Добавлено: 16 ноя 2014, 11:40
dima223
Компаратор с внутренним источником опорного напряжения (2,5В), и нужно чтоб при приходе 1 (тобиш по нарастающему фронту импульса) срабатывал захват таймера счетчика T1 (в atmega16 он вроде 16-ти битный). Мне нужно считать значение со счетчика таймера T1 (TCNT1). Оно вроде записывается в ICR1 при захвате, а оттуда потом можно и считать.
Кидаю код, помогите пожалуйста
И еще хотелось бы узнать. Надо ли разрешать прерыванию компаратора и нужно описывать вектор ISR (ANA_COMP_vect) или нет. Так же хотелось бы узнать какой вектор по T1 мне нужен ISR (TIMER1_CAPT_vect) либо другой.

#define F_CPU 1000000
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>


ISR (ANA_COMP_vect)
{
ams("nop");
}

ISR (TIMER1_CAPT_vect)
{
asm("nop");
}

int main(void)
{

DDRB &=~ (1<<3); //на вход
PORTB &=~ (1<<3); // без сопротивления

ACSR &=~ (1<<ADC); //включение компаратора
ACSR |= (1<<ACBG); //внутренее опорное напряжение на AIN0
ACSR |= (1<<ACIE); //разрешение прерываний
ACSR|=(1<<ACIS0)|(1<<ACIS1); //прерывание по нарастающему фронту

// TAIMER
TCCR1B |= (1<<0); //без предделителя
TIMSK |= (1<<5); // разрешение прерываний
TCCR1B &=~ (1<<7); // подавление помех выкл.
TCCR1B |= (1<<6); //по нарастающему фронту

sei (); //разрешение прерываний
while(1)
{
asm("nop");
}
}

Re: Пjмогите настроить таймер счетчик T1 в atmega16

Добавлено: 18 ноя 2014, 17:44
AntonChip
ISR(TIMER1_CAPT_vect) {} прерывание по захвату таймера