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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

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

Сообщение ibiza11 »

Discrim, скопируйте сообщения компилятора после сборки проекта и вставьте сюда.
Ставим плюсы: )
Discrim
Родился
Сообщения: 2
Зарегистрирован: Пн дек 23, 2013 23:41:34

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

Сообщение Discrim »

ibiza11 писал(а):Discrim, скопируйте сообщения компилятора после сборки проекта и вставьте сюда.



СпойлерBuild configuration: Release
Chip: ATmega16
Clock frequency: 7,370000 MHz
Program type: Application
Memory model: Small
Optimize for: Size
(s)printf features: float, width, precision
(s)scanf features: int, width
Promote 'char' to 'int': No
'char' is unsigned: Yes
global 'const' stored in FLASH: No
8 bit enums: Yes
Enhanced function parameters passing: Yes
Automatic register allocation: Yes
Smart register allocation: Yes

Build: 221
13141 line(s) compiled
No errors
1 warning(s)

Bit variables size: 0 byte(s)

Data Stack area: 0x60 to 0x15F
Data Stack size: 256 byte(s)
Estimated Data Stack usage: 1 byte(s)

RAM Global variables area: 0x160 to 0x167
RAM Global variables size: 8 byte(s)

Hardware Stack area: 0x168 to 0x45F
Hardware Stack size: 760 byte(s)

Heap size: 0 byte(s)

EEPROM usage: 0 byte(s), 0,0% of EEPROM
Program size: 364 words (728 bytes), 4,4% of FLASH
0 words (0 bytes), 0,0% reduced by Code Compression
dreamernf
Встал на лапы
Сообщения: 106
Зарегистрирован: Чт мар 29, 2012 13:07:27

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

Сообщение dreamernf »

Discrim В папке Release не смотрел hex файл? Там есть опция - что это Debug или Release , соответсвенно hex в нужную папку генерится
dimka86
Первый раз сказал Мяу!
Сообщения: 32
Зарегистрирован: Вт фев 21, 2012 15:05:12

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

Сообщение dimka86 »

Уважаемые коты подскажите пожалуйста пишу программу которая считывает показания с датчиков по запросу через Usart 'a01e'прием по прерыванию организован, должна ответить 'OK'для проверки, но когда отвечает считывать показания с датчиков она прекращает в чем ошибка
Спойлер//распознование адреса
//мое
if (data=='e') //если получен символ е
{adr[i++]='\0'; //к строке адреса добавитьсимвол конец строки
read_adr=0;//запрет чтения адреса
i=0;//обнулить счетчик адреса
rx_adr=atoi(adr);
if(rx_adr==adr_devase)
{puts("OK");
rx_adr=0;
putchar(0x0d);
puts(adr);
putchar(0x0d);
//itoa( T_sred,buf);
//puts(buf);
//putchar(0x0d);
}//если получен адрес
}//перевод строки в число
if(read_adr==1){adr[i++]= data;}//если чтение адреса разрешено читаем адрес в строку
if(data=='a'){read_adr=1;}//если получен символ "а" разрешить чтение адреса
//мое
дописанно в обработчике прерывания генератора кода
а вот так считываю датчики
Спойлерwhile (1)
{
w1_init();
devices=w1_search( DS1820_SEARCH_ROM_CMD, RomCode ); //поиск датчиков на линии 1-wire
ageyn_1:temp= ds1820_temperature_10( &RomCode[0][0]);
if(temp==-9999)goto ageyn_1;
temp1=temp/80;
itoa( temp1,buf);
puts(buf);
putchar(0x0d);
ageyn_2:temp= ds1820_temperature_10( &RomCode[1][0]);
if(temp==-9999)goto ageyn_2;
temp2=temp/80;
itoa( temp2,buf);
puts(buf);
putchar(0x0d);
ageyn_3:temp= ds1820_temperature_10( &RomCode[2][0]);
if(temp==-9999)goto ageyn_3;
temp3=temp/80;
itoa( temp3,buf);
puts(buf);
putchar(0x0d);
T_sred=(( temp1+ temp2+ temp3)/3);
itoa( T_sred,buf);
puts(buf);
putchar(0x0d);


}//конец бесконечного цикла
Аватара пользователя
Apparatchik
Держит паяльник хвостом
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

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

Сообщение Apparatchik »

vitalik_1984 писал(а):Так для однократного повторения эти операции одинаковы.

Я имел ввиду что между скобками вместо плюса надо порязрядное ИЛИ (если я правильно понял, нужно перевести из двоично-десятичной в двоичную). Еще настораживает что индекс массива начинается с еденицы, а не с нуля.
«И всё-таки она вертится!»
Аватара пользователя
pashaumnov
Прорезались зубы
Сообщения: 236
Зарегистрирован: Чт июн 25, 2009 16:00:25
Откуда: нижний новгород

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

Сообщение pashaumnov »

ребята подскажите пожалуйста, вопрос наверное глупый но как мне подключить в место переменного резистора аккумулятор литиионный, что бы схема индицировала его разряд?? схему прилагаю. если подключаю к ацп плюс а минус к минусу то при уменьшении вольт яркость всех светодиодов уменьшается а нужно что бы гасли поэтапно программа написана на 4в макс и 2.5 миним
вольтметр.JPG
(22.59 КБ) 237 скачиваний

с переменным резистором все работает и в протеусе и в железе . без него нет.
Аватара пользователя
AndTer
Поставщик валерьянки для Кота
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

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

Сообщение AndTer »

Доброго всем времени суток!
Решил вспомнить программирование, в итоге потратил пол дня впустую...
Ситуация такая, для оживления микроконтроллера и проверки монтажа решил для начала написать простую программу. Мигаем светодиодом:

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

#include <mega32a.h>
#include <delay.h>

void main(void)
{
PORTA=0x00;
DDRA=0x00;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x40;

while (1)
      {
      PORTD.6 = 0b1;
      delay_ms(1000);
      PORTD.6 = 0b0;
      delay_ms(1000);
      }
}


МК Atmega32A. Светодиод загорается и... всё... такое ощущение что виснет на задержке.
Потратил пол дня, пока не решил попробовать старую мегу. То есть без буквы "А".
Воткнул на туже плату, прошил (только в проекте сменил на atmega32 без буквы "А"), тот же код и... мигает...
Далее попытки разные с разными хедерами и 32L и 32 и 32A... Короче не хочет и всё...

Таймер отдельно пробовал, работал нормально, регистры внешние заполняет нормально, отсюда вывод что работает без delay_ms, а как его воткну в код, на нём виснет...

В чём может быть проблема? В CVAvr что то нужно сделать ещё для "А"? Или может брак?
Глупый не задает вопросы. Глупый и так все знает.
Аватара пользователя
Panda_Y2K
Грызет канифоль
Сообщения: 258
Зарегистрирован: Пт сен 23, 2011 06:44:41
Откуда: ЮФО
Контактная информация:

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

Сообщение Panda_Y2K »

Порт которым мигаешь настроен на вход.

PORTD = 0b1 ----> 0b00000001
а нужно 0b01000000
или 0x40;

PORTD = 0x40;
Купи два беляша и собери из них кошку
Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)
Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).
Аватара пользователя
AndTer
Поставщик валерьянки для Кота
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

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

Сообщение AndTer »

Panda_Y2K писал(а):...

Да нет, всё правильно у меня. Я шлю не просто в порт D, а в порт D.6...
Проблема именно либо в самом контроллере, либо CVAVR для контроллера с буквой "А" работает неправильно или что-то не настроено...
Глупый не задает вопросы. Глупый и так все знает.
Аватара пользователя
isx
Поставщик валерьянки для Кота
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

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

Сообщение isx »

Попробуйте сделать задержку еа аппаратном таймере, либо сделайте программно счётчик, а по нему таймер. Так же можно попробовать в протеусе прогнать (если там есть такой МК).
Аватара пользователя
@nod
Встал на лапы
Сообщения: 98
Зарегистрирован: Вт июл 29, 2008 01:45:38
Откуда: Днепропетровск

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

Сообщение @nod »

Доброго времени суток!

Начинаю изучать CVAVR и Протеус.

Вот, собс-но хотел "поковырять"
http://radioparty.ru/index.php/componen ... n2-ds18b20

Скомпилить не удалось.

Пишет ошибка.

Предполагаю файл ( единственный на моём компе ) interrupt.h не той редакции?

Если да, то где взять другой? Самому писать?
Вложения
02.JPG
(22.87 КБ) 378 скачиваний
01.JPG
(90.79 КБ) 199 скачиваний
Аватара пользователя
pashaumnov
Прорезались зубы
Сообщения: 236
Зарегистрирован: Чт июн 25, 2009 16:00:25
Откуда: нижний новгород

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

Сообщение pashaumnov »

вместо ISR надо interaupt, прога похоже написана в компиляторе вин авр.
да и если я не ошибаюсь в #include тоже не правильно описано.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

Для отсчета временных задержек используем стандартную функцию WINAVR util/delay.h

видно что исходник для WinAVR - для Codevision придется переделать.
Аватара пользователя
@nod
Встал на лапы
Сообщения: 98
Зарегистрирован: Вт июл 29, 2008 01:45:38
Откуда: Днепропетровск

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

Сообщение @nod »

Спасибо!
Качну winavr.
Проще будет.
yvd
Родился
Сообщения: 5
Зарегистрирован: Пн дек 23, 2013 22:56:00

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

Сообщение yvd »

Подскажите пожалуйста новичку - есть где то готовые прошивки( мне нужно для защиты от перенапряжений сети). Нашел на форуме Кота интересные схемы, только эта ветка брошена еще в 2009 г. Писал в личку участникам форума которые писали что собирали но обратной связи к сожалению нету. Возможно единственный выход учится самому. Еще интересует где можно скачать CODEVISION AVR c паролями?
Аватара пользователя
Panda_Y2K
Грызет канифоль
Сообщения: 258
Зарегистрирован: Пт сен 23, 2011 06:44:41
Откуда: ЮФО
Контактная информация:

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

Сообщение Panda_Y2K »

Проблема именно либо в самом контроллере, либо CVAVR для контроллера с буквой "А" работает неправильно или что-то не настроено...

попробуй действительно с хидером для 32й без букв
вот так
i = 30000;
while(i) i--;
Купи два беляша и собери из них кошку
Labor est etiam ipse voluptas Труд уже сам по себе есть наслаждение (*Формула любви)
Ave novie-nostra ales Если один человек построил - другой завсегда разобрать может....(*Формула Любви).
Аватара пользователя
AndTer
Поставщик валерьянки для Кота
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

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

Сообщение AndTer »

Panda_Y2K писал(а):...

Пробовал разными, всё равно виснет. Задержку то можно реализовать по другому, но заново писать ту же i2c.lib как то не охота... С ней тоже виснет...
Прихожу к выводу что всё таки МК бракованный... Старый, который без "А", работает нормально...
Глупый не задает вопросы. Глупый и так все знает.
Аватара пользователя
AndTer
Поставщик валерьянки для Кота
Сообщения: 2406
Зарегистрирован: Ср фев 23, 2011 12:12:31

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

Сообщение AndTer »

Подскажите, есть ли в CVAVR аналог баскомовской функции Shiftout и pulseout? Которые последовательно на ножку порта выводят побитно байт?
Суть в управлении внешним сдвиговым регистром. i2c функции не подходят, ибо уже используются на других ногах.
Есть какие то "красивые" решения? В том плане чтобы не было затратно для МК и в плане скорости и в плане размера кода?
Глупый не задает вопросы. Глупый и так все знает.
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

отсюда http://avru.cwx.ru/uchebnik/avr_and_reg ... hc164.html

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

void hc164_wr(unsigned char dig){  //подпрограмма вывода данных в регистр
unsigned char a;
 for(a=0; a<8; a++){            //цикл для вывода 8 бит данных из массива
   PORTB.0 = buf[dig] & 1<<a;   //выводим в линию DATA текущий бит
   PORTB.1=0;         //опускаем линию CLK в лог.0
   PORTB.1=1;         //поднимаем линию CLK в лог.1
 }
}   
Аватара пользователя
BCluster
Собутыльник Кота
Сообщения: 2512
Зарегистрирован: Пн апр 06, 2009 19:33:29
Откуда: Молдова, Кишинев
Контактная информация:

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

Сообщение BCluster »

AndTer писал(а):Которые последовательно на ножку порта выводят побитно байт?
вообще народ обленился :facepalm:
Ответить

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