Jump to content

Recommended Posts

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

#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

Share this post


Link to post
Share on other sites
 

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

Share this post


Link to post
Share on other sites
 

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

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

Share this post


Link to post
Share on other sites
 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  



×
  • Create New...