реклама на сайте
подробности

 
 
> Простая "программа-мигалка" - ничерта не работает, помогите найти ошибку
kyrogaz
сообщение Mar 21 2006, 18:05
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 14-03-06
Пользователь №: 15 248



Помогите начинающему. Изучаю прерывания и таймеры. Простая "программа-мигалка" - ничерта не работает, помогите найти ошибку, сто раз проверил - все должно работать...
Микроконтроллер ATmega8, тактовая частота 7.3728Mhz, использую 16-битный TIMER_COUNTER_1, светодиод прицеплен к PD5, IDE - CodeVisionAVR


#include <mega8.h>
unsigned char ctr = 1;

void timer1_init(void)
{
TCCR1B = 0x00; //stop timer1
TCNT1H = 0x0;
TCNT1L = 0x0;
TCCR1B = 0x05; //частота переключения Ft/1024=7200; 7200/2^16=0.10986; 1/0.10986=9.1cek
TIMSK = 0x04; // TOIE1=0x4 ДЛЯ ATmega8
}

//согласно даташиту 9-е прерывание TIMER1_OVF
interrupt [0x9] void timer0_ovf(void)
{
if (ctr) {
PORTD=0xFF;
ctr=0x0;
}
else {
PORTD=0x00;
ctr=0x1;
}

TCNT1H = 0x0;
TCNT1L = 0x0;
}
void main (void)
{
DDRD = 0xff;
PORTD = 0x0;
timer1_init();
while(1);
}

Спасибо

Сообщение отредактировал kyrogaz - Mar 21 2006, 18:07
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
kyrogaz
сообщение Mar 21 2006, 19:01
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 20
Регистрация: 14-03-06
Пользователь №: 15 248



Цитата
В CV компилятор можно не указывать адрес прерывания при следующей конструкции
interrupt [TIM1_OVF] void timer1_ovf_isr(void)
{....}

Перепробовал - не помогает. Со схемотехникой все правильно - когда меняю в main начальную установку PORTD (PORTD = 0xFF) - светодиод постоянно светится.
Согласно файлу mega8.h, TIM1_OVF равно 9, но пробовал 8 и 0xA. Также менял установки таймера: TCNT1H = 0x80; TCNT1L = 0x0;

...Хоть с бубном танцуй
А может кроме TIMSK = 0x04 еще какое разрешение нужно поставить? Или раскидать #asm("wdr") по программе?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 23:35
Рейтинг@Mail.ru


Страница сгенерированна за 0.01362 секунд с 7
ELECTRONIX ©2004-2016