CodeVision AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

А в чем тогда проблемма в моем случае?
У вас таймер настроен на нормальную работу верх FFh (CVAVR довольно понятно комментарии пишет), а вы до прерывания по переполнению его сливаете.Вот ничего и не происходит.
Там есть режим специально для такого дела- верх OCRx Сейчас негде посмотреть вроде в режиме CTC выставляется.
Контактная информация:
Реклама
Встал на лапы
Сообщения: 95
Зарегистрирован: Ср ноя 02, 2011 15:11:49

Сообщение mich91 »

Вот что тут не правильно,не получается самому сделать BAM http://bsvi.ru/bam-alternativa-shimu/, не пойму никак, контролер мега 8 1мгц (((
Таблица счетов таймера для разрядов-
счет разряд
128 7
64 6
32 5
16 4
8 3
4 2
2 1
1 0

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

char temp=0x80;
char value=0b10000000;
interrupt [TIM2_COMP] void timer2_comp_isr(void)
{ 
  if(value & temp)//проверяем состояние бита в регистре,начиная с 7 разряда
    PORTB.4=1;//устанавливаем 1 в выход
   else
    PORTB.4=0;//устанавливаем 0 в выход
    OCR2=temp;  //устанавливаем счет таймера для определенного разряда
   temp>>=1;  // сдвигаем бит в разряде в младшую сторону тоисть с 128 делаем 64... 16 делаем 8...и тд
   if(!temp) //когда дошли ло последнего бита, начинаем всё с начала
   {          
    temp=0x80;
    
   }
}

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: 125,000 kHz
// Mode: CTC top=OCR2
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x0A;
TCNT2=0x00;
OCR2=0x01;


TIMSK=0x80;
При таком значении VALUE=0x80 , выход должен быть 50%, тоисть 128 тактов 1, все остальные такты 0, а при таком коде не так (
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

Сообщение U235 »

mich91 писал(а):При таком значении VALUE=0x80 , выход должен быть 50%, тоисть 128 тактов 1, все остальные такты 0, а при таком коде не так (
Один из подводных камней выбранного способа заключается в том, что прерывания в определённые моменты следуют с очень малым периодом.

Предделитель таймера настроен на 8 тактов процессора. Таким образом, исходя из логики алгоритма, прерывания должны следовать через 8, 16, 32, 64, 128, 256, 512, 1024 такта.

Длительность обработчика прерывания скорее всего больше 32 тактов, поэтому происходят пропуски.

Вывод такой - смотрите, сколько тактов длится прерывание и настраивайте предделитель на большее значение.
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Встал на лапы
Сообщения: 95
Зарегистрирован: Ср ноя 02, 2011 15:11:49

Сообщение mich91 »

Это капец, вчера пол ночи мучался, а сегодня просто перекинул всё тоже в ТАЙМЕР 1 , и заработало с первого раза...как это обьяснить, токо поменял OCR2 на OCR1A; ??? Что получается время исполнения прерываний у разных таймеров разное ?
Реклама
Эиком - электронные компоненты и радиодетали
Собутыльник Кота
Аватара пользователя
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев

Сообщение BCluster »

Другая разрядность таймера? Время между прерываниями больше, вот он и успевает...
Контактная информация:
Реклама
Встал на лапы
Аватара пользователя
Сообщения: 84
Зарегистрирован: Ср июн 22, 2011 20:41:57
Откуда: Харьков

Сообщение signum »

Доброго времени суток уважаемые форумчане. Кто может поделиться бутлоадером
для xmega128a1 у меня для загрузи используется rxd0, txd0, за ранние благодарю :beer:
Реклама
Встал на лапы
Сообщения: 95
Зарегистрирован: Ср ноя 02, 2011 15:11:49

Сообщение mich91 »

BCluster писал(а):Другая разрядность таймера? Время между прерываниями больше, вот он и успевает...
Да, таймер в том что пашет 16 битный, но прикол в том что он считает тоже самое что и 8 битный, от 128 тактов к 1 такту,в коде ничего не менял, но вот в 16 битном пашет, а в 8 битном нет.. в чем прикол, не пойму..
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2482
Зарегистрирован: Пт авг 27, 2010 05:57:06
Откуда: Тюмень

Сообщение vitalik_1984 »

Значит делитель поменялся.
Контактная информация:
Встал на лапы
Сообщения: 95
Зарегистрирован: Ср ноя 02, 2011 15:11:49

Сообщение mich91 »

На 8 битном счетчике я ставил делитель как на 32, нак и на 8, эффект тот же...а на 16 битном работает при любом!
Встал на лапы
Аватара пользователя
Сообщения: 135
Зарегистрирован: Вт фев 21, 2012 20:42:26
Откуда: Санкт-Петербург, Россия, Земля

Сообщение U235 »

mich91 писал(а):...а на 16 битном работает при любом!
Работает то в протеусе? А как дела обстоят с реальным устройством?
А из наших труб идет необычный дым. Стой! Опасная зона! Работа мозга!...
Встал на лапы
Сообщения: 95
Зарегистрирован: Ср ноя 02, 2011 15:11:49

Сообщение mich91 »

Делал и в реальном устройстве, тоже самое, что хочет то и выдаёт на выходе, цеплял светодиод,LCD16*2, и энкодером менял значение...Какая то мистика, можете сами попробовать вкинуть мой код в 8 битный и 16 битный таймер и посмотреть в протеусе.
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Сб янв 20, 2007 20:44:33
Откуда: Из закаулков вашей души

Сообщение Demon »

Подскажите где можно найти описание как работать с модулем USB at90usbxxx
Встал на лапы
Аватара пользователя
Сообщения: 132
Зарегистрирован: Вт июл 14, 2009 09:27:37
Откуда: Донецк, Украина

Сообщение hd44780 »

Demon писал(а):Подскажите где можно найти описание как работать с модулем USB at90usbxxx
На сайте атмела полно примеров. Они, конечно, в CvAVR не пойдут (диалект Си другой, надо переделывать), но "как работать", понять можно ...
Родился
Сообщения: 1
Зарегистрирован: Сб ноя 03, 2012 00:19:29

Сообщение ser009 »

Подскажите как на CodeVisionAvr вывести температуру c ds18b20 по UART с десятыми или сотыми (формата хх.х или хх.хх)
Вот моя строка. Не выводит :(

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

      temp[1]=ds18b20_temperature(&rom_code[1][0]);
      
      if (temp[1]>1000)
      { 
      temp[1]=4096-temp[1]; 
      temp[1]=-temp[1];
      }
      printf("GET /objects/?object=SensorTemp1&op=m&m=TempChanged&t=%i.%u \r",temp[1],temp[1]%10); // процедура отправки температуры в формате temp=xx.x
Кусок кода был взят из примера с выводом на LCD через команду sprintf
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Сообщение mixon46 »

вот скачал CodeVision AVR написал програмку. как мне скомпилировать файл?http://radiomix.wen.ru/534535.bmpи где мне взять эти все коды по которым пишется программа с описанием
Встал на лапы
Аватара пользователя
Сообщения: 132
Зарегистрирован: Вт июл 14, 2009 09:27:37
Откуда: Донецк, Украина

Сообщение hd44780 »

mixon46 писал(а):вот скачал CodeVision AVR написал програмку. как мне скомпилировать файл?http://radiomix.wen.ru/534535.bmpи где мне взять эти все коды по которым пишется программа с описанием
Как компилить, обвёл. Оно у Вас неактивно :( .

Зачем расширение .asm? Вы что на ассемблере написали? Не вводите компилятор в заблуждение. У него нет чувства юмора.
Если не знаете, с чего начать, можно использовать генератор начального кода. Хорошая вещь, не пренебрегайте им.
Я даже когда на WinAVR пишу, беру куски из этих "болванок".
Вложения
534535.PNG
(86.91 КБ) 259 скачиваний
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Сообщение mixon46 »

понял.. программа у меня плохая. компилировать не умеет. у меня еще есть AVR studio. там же язык ассемблер? как там компилировать? что такое генератор начального кода?
Вложения
hfdhh.PNG
(71.82 КБ) 397 скачиваний
Встал на лапы
Аватара пользователя
Сообщения: 132
Зарегистрирован: Вт июл 14, 2009 09:27:37
Откуда: Донецк, Украина

Сообщение hd44780 »

Программа нормальная. Кое в чём даже лучше WinAvr, ИМХО :))) .
Я на ней 10 лет пишу и компилировать она умеет, как ни странно :))) .

Ловите, изучайте. Hex в комплекте, как доказательсто того, что компилируется всё прекрасно.

В AVR Studio есть и Си и асм. Здесь - только Си.
И пишете Вы на Си, зачем Вам здесь ассемблер? Не валите всё в одну кучу...

Или Вы разницу не понимаете между ними?
Вложения
CvAvrTest.zip
(4.29 КБ) 173 скачивания
534535.PNG
(86.87 КБ) 363 скачивания
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Сообщение mixon46 »

вроде теперь понял. си это со скобочками а ассемблер нет :) ну и команды отличаются?
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Сообщение mixon46 »

ну создал файл. потом появилась кнопочка компиляции. ну выдает ошибку. а вообще походу ничего не понимаю
Вложения
dfbdfhbd.PNG
(98.97 КБ) 393 скачивания
Ответить

Вернуться в «AVR»