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

Авторизация  
nickson_wer

Таймер на МК ATmega8

Рекомендуемые сообщения

Почему таймер не работает???

#include <mega8.h>
#include <delay.h>

char a = 0;

interrupt [TIM1_COMPA] void timer1_compa_isr(void)
{

if(PIND.0 == 0 && a == 0) 
{
a = 1;
};
TCNT1=0; //обнуляем таймер
}

void main(void)
{
DDRB = 0xFF;
PORTB = 0x00;

DDRD.0 = 0;
PORTD.0 = 1;

TCCR1A=0x00; //настройка таймера
TCCR1B=0x05;
TCNT1=0x00; //здесь увеличиваются тики
OCR1A=0x1E85; //записываем число в регистр сравнения

TIMSK=0x10; //запускаем таймер

while (1)
{
if(a == 1)
{
PORTB = ~PORTB;
delay_ms(500);
};

}
}

Суть. опрос кнопки. 
В прерывании: если была нажата кнопка, то сделать a = 1/
В цикле: если а = 1 - подрыгать ногами порта Б

 

http://foto.hz.by/show-image.php?id=84c991cfe803cf7bb2e0e2c7eb7e7118

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


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

Я не специалист по Атмелам, но ПО это одно, а вот выставить фьюзы - другое. Думаю для спецов, чтоб ответить , покажите им выставленные фьюзы.

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


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

Я не специалист по Атмелам, но ПО это одно, а вот выставить фьюзы - другое. Думаю для спецов, чтоб ответить , покажите им выставленные фьюзы.

какие фьюзы. еще программа не написана и проверяется в симуляторе.

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  



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