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

Не запускается таймер 0

пытаюсь программировать attiny2313 в Atmel 6.1. При входе в дебаггер не запускается таймер, если присваивать csel00=1 TCNT0 начинает тикать, в моем же варианте таймер не хочет переключаться :smile3046:

вот код, который пытаюсь скомпилировать, что не так?

 

#include <avr/interrupt.h>

#include <avr/io.h>

#define F_CPU 8000000UL

 

int NoC=1;

ISR (TIMER0_COMPA_vect)

{

if(NoC > 4) NoC == 1;

int mask = 0;

 

switch(NoC)

{

case (1): {PORTB=0x03; mask=0b00000011; break;}

case (2): {PORTB=0x05; mask=0b00000101; break;}

case (3): {PORTB=0x09; mask=0b00001001; break;}

case (4): {PORTB=0x011; mask=0b00010001; break;}

} NoC++;

PORTD=0b11001111;

PORTD=0b10010010;

PORTD=0b10000110;

PORTD=0b11001100;

PORTD=0b10100100;

PORTD=0b10100000;

PORTD=0b10001111;

PORTD=0b10000000;

PORTD=0b10000100;

PORTD=0b10000001;

PORTB&=mask;

TCNT0=0x0;

 

}

 

int main(void)

{ TCNT0=0;

OCR0A=79;

TCCR0A = (1<<WGM01);

TCCR0B=((1<<CS02)|(0<<CS01)|(1<<CS00));

 

sei();

DDRB = 0x1F;

DDRD = 0x7F;

int a=0;

 

while(1)

{

}

 

return 0;

}

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


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

На тиньках не прогал, но разве не надо разрешить прерывание TIMER0_COMPA_vect ? Что-нить вроде TIMSK0 = ( 1 << OCIE0A ) ...

 

И общее замечение: не надо запихивать в прерывание всю обработку события. Прерывание должно обрабатываться максимально быстро и возвращать управление в основную программу.

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


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

TCCR0B=((1<<CS02)|(0<<CS01)|(1<<CS00));

В Вашем примере чтобы таймер затикал нужно на ногу PD4(T0) подать меандр требуемой частоты.

Отладчик такой процесс позволяет эмулировать посредством входного файла.

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

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