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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Yellow Tiger
Сверлит текстолит когтями
Сообщения: 1148
Зарегистрирован: Вт июл 08, 2008 12:24:17

Сообщение Yellow Tiger »

Shutilla писал(а):В мануалах были найдены 2 функции srand и rand, однако дело не продвинулось.
"Не возьму никак я в толк" - что означают слова "дело не продвинулось" - вызов функций не удается впечатать в исходник? Или может, вызовы вносятся в текст, но функции не вызываются в ходе исполнения программы? Что там вообще может "не продвинуться"?! Изображение
Аватара пользователя
Synergetik
Встал на лапы
Сообщения: 117
Зарегистрирован: Чт фев 28, 2008 23:54:35
Откуда: Воскресенск, МО
Контактная информация:

Сообщение Synergetik »

Здравствуйте!

Имеется проблема с CodeVisionAVR (команда Build All): ни в какую не хочет создавать hex-файл, останавливается на asm-файле - и то хорошо - приходится вручную Tavrasm 1.22 запускать, что не очень удобно - копировать asm-файл в отдельную папку, запускать батник, копировать hex-файл обратно.

Выдаёт следующее сообщение:
"Unable to run "...\bin\AVRASM2.EXE -v2 -W-b -Oi -fO2 -|"01.lst" -e"01.eep" "01.eep" "01.asm"". %1 не является приложением Win32.

До недавнего времени терпел, а сейчас как-то сильно на нервы давить стало. Подскажите, пожалуйста, как с этим бороться.

Версии CVAVR - 1.25 и 2.03. Выходные файлы в настройках следующие: "OBJ ROM HEX EEP". Пробовал и второй вариант (вместо OBJ - COF) - не помогло. Думал, что ругается на кириллицу, поместил в папку, в пути которой нет русских букв - то же самое.

Ни справка, ни официальный мануал не помогли. Так же, как и Гугл с Яндексом и эта тема. Как будто таких проблем больше ни у кого нет. На вас последняя надежда.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Сообщение clawham »

у этого зверя есть проблема с длиной папок-пути больше 6ти символов но эти ошибки скорее всего или с системой связаны или с криво крякнутой кодвижной...
Аватара пользователя
Synergetik
Встал на лапы
Сообщения: 117
Зарегистрирован: Чт фев 28, 2008 23:54:35
Откуда: Воскресенск, МО
Контактная информация:

Сообщение Synergetik »

clawham писал(а):но эти ошибки скорее всего или с системой связаны

Даже и не знаю, как Вас благодарить! Проблема действительно, скорее всего в системе, потому как на другом компе с теми же самыми КодВижн компилируется без проблем. Ещё один пунктик в пользу переустановки Винды.

Представить не могу, насколько нужно быть опытным и подкованным в этих делах, чтобы знать ответ на такой каверзный вопрос!

Ещё раз большое спасибо! Вопрос снимается.
Аватара пользователя
Aiudara
Нашел транзистор. Понюхал.
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

После уствновки винды и всех нужных прог сделайте образ системы с помощью "Acronis тру имэйдж"
и в следующий раз систему востановите за 5-9 минут !!!
Аватара пользователя
DataLife
Вымогатель припоя
Сообщения: 601
Зарегистрирован: Пт фев 13, 2009 20:58:13
Откуда: Донецк

Сообщение DataLife »

Подскажите, можно ли как-то "подконектить" ДАННЫЙ программатор в сабжу (CVAVR)?
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Аватара пользователя
Aiudara
Нашел транзистор. Понюхал.
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

Данный неизвестно а от протоса аналогичный можно - он как AVR910 указывается.
Аватара пользователя
zanuda
Родился
Сообщения: 8
Зарегистрирован: Сб авг 08, 2009 20:46:09

Сообщение zanuda »

есть такое вот устройство: к меге8 (тактируется от кварца 8 мег) подключены 10 входных линий, на которые могут приходить одиночные импульсы (по одному на каждую линию, без дребезга, в один период времени только один импульс) от другого девайса. также к меге подключен комп через макс232 по ком порту. необходимо сделать следующее - собирать в строку номера входных линий. то есть: пришел импульс на 3 линию, потом на 5 и на 8. строка должна принять вид "358". прерывания не использую, если надо - могу дать код.

проблема в следующем: при появлении очередного нового сигнала все переменные заново инициализируются и не получается накапливать строку. получается что вся программа выполняется бесконечное число раз, как при этом накапливать значения в переменной?
Аватара пользователя
Aiudara
Нашел транзистор. Понюхал.
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

Вы выкладывайте проект, и очень советую скачать PROTEUS и только атмегу8 кинуть на схему, терминал и несколько кнопочек ко входам подключить.

и вам понятно станет что там и как и помочь вам будет легче.
Аватара пользователя
zanuda
Родился
Сообщения: 8
Зарегистрирован: Сб авг 08, 2009 20:46:09

Сообщение zanuda »

вот проект в аттаче, протеус скачаю :) там для примера я на "1" и "2" поставил вывод строки.
Вложения
project1.rar
(41.03 КБ) 206 скачиваний
Аватара пользователя
Aiudara
Нашел транзистор. Понюхал.
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

Вроде по всем условиям должна пробегать нормально и снова начинать. только прерывание там зачем то включено, но оно вроде не должно работать так как наногу "1" выведено.

Паузы огомные. и USART не включен.

==1 можно не писать в скобках.

просто if (PINC.1) достаточно.

Проверьте в симуляторе - хотябы VMLAB - он 4 Мб всего.
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Сообщение Mr.Denis »

Помогите пожалуйста разобраться!
Возникло пару ужасно глупых вопросов:
1) Всем известно что АЦП выводит значение от 0 до 255. А может ли АЦП вывести значение с одним или двумя знаками после запятой, например 144.1 или 144.01. Если может то подскажите как это реализовать программно?
2) Какой тип данных нужен для переменной i=1.25(не как не могу подобрать)?
В заранее спасибо!
С уважением, Денис!
Аватара пользователя
Aiudara
Нашел транзистор. Понюхал.
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

АЦП в AVR 10 бит - так что можно и от 0 до 1023. Подробней про АЦП - http://pid.by.ru/z11.htm

Выводит инфу с АЦП прога в МК - как запрогите так и выведет.
Вот вам примеры вывода - http://pid.by.ru/z5.htm
Аватара пользователя
Aiudara
Нашел транзистор. Понюхал.
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

Mr.Denis писал(а): Какой тип данных нужен для переменной i=1.25(не как не могу подобрать)?


float - смотрите "Язык Си для микроконтроллеров" - http://pid.by.ru/05.htm
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Сообщение Mr.Denis »

Тип данных float не помогает, точнее он по какой-то причине не работает.
Я пытаюсь вывести на LCD число 25.5 при помощи float a=25.5, но на LCD выводит просто 25, я не как не пойму в чём дело?
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Сообщение Mr.Denis »

А может загвоздка с функциями форматирования строки(sprintf) и вывода её на LCD(lcd_puts)?
Я делаю вот так:

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

Char lcd[32];
void main(void)
{
float q;
q=25.5;
#pragma rl+
while (1)
{
sprintf(lcd, "A=%i", q);
lcd_init(16);
lcd_gotoxy(0, 0); 
lcd_puts(lcd);
};
}

На первый взгляд вроде всё правильно, но может есть какие-то подводные камни?
Аватара пользователя
Aiudara
Нашел транзистор. Понюхал.
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

Mr.Denis писал(а): Я пытаюсь вывести на LCD число 25.5 при помощи float a=25.5, но на LCD выводит просто 25, я не как не пойму в чём дело?


Поэтому я вам дал ссылку с ПРИМЕРАМИ !!!!
Вот вам примеры вывода - http://pid.by.ru/z5.htm

И в самом CVAVR пример есть вывода температуры с десятыми на LCD - C:\CVAVR\examples\THERMLCD
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Сообщение Mr.Denis »

Вот кусочек из комментариев к коду задачи №5(http://pid.by.ru/z5.htm)
в свойствах проекта CVAVR надо указать float для sprintf

Может из-за этого быть?
Где можно посмотреть и изменить свойства sprintf?
Аватара пользователя
Aiudara
Нашел транзистор. Понюхал.
Сообщения: 170
Зарегистрирован: Пт июл 31, 2009 21:52:18

Сообщение Aiudara »

В свойствах проекта - прожект - конфига

ярлак "Си компилер"
Mr.Denis
Прорезались зубы
Сообщения: 220
Зарегистрирован: Пт авг 07, 2009 22:06:49
Откуда: Россия, Москва

Сообщение Mr.Denis »

Я там менял параметр (s)printf Features!
Изначально он стоял как: int, width, а я его изменил на float, width, precision. Но из этого нечего не получилось, на LCD выводит 0.
Ответить

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