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

 
 
> Простая "программа-мигалка" - ничерта не работает, помогите найти ошибку
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
Ответов
WHALE
сообщение Mar 22 2006, 05:05
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Пользуйтесь отладчиком.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post



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

 


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


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