таймер1 в atmega8

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

таймер1 в atmega8

Сообщение vovik15 »

здравствуйте,вот пытаюсь настроить прерывание по переполнению таймера 1 для управления динамической индикацией
пишу в CVAVR все сделал как сказано в датащите,но компилятор почему то ругаеться на регистры ,и выдает ошибки

Код: Выделить всё

void podgot (void) //подготовка МК
{
PORTB=0x00; //чистим порт
DDRB=0xFF; //все линии на выход
PORTC=0x00; //чистим порт
DDRC=0xFF; //все линии на выход
PORTD=0x00; //чистим порт
DDRD=0xFF; //все линии на выход
// прерывания таймера 1
TOIE1 = 1; //разрешаем прерывание по переполнению Т1
COM1A = 0;  //отключаем линии для перрывания
COM1B = 0;
//тактирование Т0
CS12 = 0; CS11 = 0; CS10 = 1; //СLK
//CS12 = 0; CS11 = 1; CS10 = 0; //СLK /8
//CS12 = 0; CS11 = 1; CS10 = 1; //СLK /64
//CS12 = 1; CS11 = 0; CS10 = 0; //СLK /256
//CS12 = 1; CS11 = 0; CS10 = 1; //СLK /1024
#asm("sei"); //разрешаем прерывания глобально
}


а так я организовал обработчик прерывания

Код: Выделить всё

 //прерывания по переполнению таймера Т1
  interrupt [TIM1_OVF] void timer1 (void)
  {
       PORTB = 0x00;
        delay_us(10);
        PORTB = 0xFF;
        delay_us(10);
  }


все ли верно я сделал? спасибо!
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: таймер1 в atmega8

Сообщение ARV »

вы сделали все неверно.
для начала внимательно прочтите и вникните в то, чем вас обругал компилятор.
затем разберитесь с тем, что такое CS11 и т.п., при этом заглядывая в даташит.
после этого при помощи поиска по форуму разберитесь, почему задержки в обработчике прерывания - это очень плохо.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
ksv82
Первый раз сказал Мяу!
Сообщения: 25
Зарегистрирован: Пт мар 18, 2011 12:41:09

Re: таймер1 в atmega8

Сообщение ksv82 »

Жуть! Даж не знаю что сказать на это....

Напишите хотябы одну программу на асме, чтобы лучше понимать как работает контроллер. Ну или хотябы прочитайте обучалку по программированию которая лежит тут http://radiokot.ru/start/mcu_fpga/avr/ . А то, судя по вашему коду понимание работы контроллера отсутствует напрочь.
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: таймер1 в atmega8

Сообщение vovik15 »

ошибаетесь. я понимаю как работает контроллер,просто я к пикам привык,там каждый регистр можно изменять своими битами
а в авр так нельзя делать,только присваиванием.
я уже с этим делом разобрался,спасибо за ответы
Аватара пользователя
Psych
Опытный кот
Сообщения: 848
Зарегистрирован: Ср мар 02, 2011 07:47:39
Откуда: Уфа

Re: таймер1 в atmega8

Сообщение Psych »

Вы наверное на пике под ассемблером писали, а тут на си пишите.
vovik15
Опытный кот
Сообщения: 768
Зарегистрирован: Сб ноя 08, 2008 18:32:36
Контактная информация:

Re: таймер1 в atmega8

Сообщение vovik15 »

на си я писал :)
Аватара пользователя
ChipKiller
Сверлит текстолит когтями
Сообщения: 1163
Зарегистрирован: Ср янв 05, 2011 16:25:15

Re: таймер1 в atmega8

Сообщение ChipKiller »

vovik15 писал(а):я понимаю как работает контроллер,просто я к пикам привык,там каждый регистр можно изменять своими битами а в авр так нельзя делать,только присваиванием.
у AVR тоже можно, только точно не так CS12 = 0; CS11 = 0; CS10 = 1; //СLK :)
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»