Страница 17 из 421
Добавлено: Вт сен 16, 2008 09:59:25
chuchxe
KIP писал(а): Пока всё изучаю на теории и в симуляторах - там деление после компиляции проходит быстро.
Дак
в симуляторах тоже можно посмотреть алгоритм - в PROTEUS просто нужно включить отображение АСМ листинга
Добавлено: Ср сен 17, 2008 17:15:17
Степаныч
Всем привет! Только начал работать с CVAVR да и с СИ тоже!!Решил сделать часы с выводом времени на LCD и сразу возник вопрос: Как организовать отсчет секунд??Так алгоритм понимаю т.е нужно создать переменную например Sec, далее присвоить значение 0, потом прибавить 1, потом организовать задержку в 1000ms, затем опять прибавить 1 и т.д.
Ну должно быть так
While(sec++); --- а как сделать с интервалом в 1 сек не знаю если delay_ms(1000); то куда его тут вставить??
Короче как заставить программу прибавлять 1 к значению перменной с интервалом в 1000ms с бесконечным циклом?? И еще если у кого нибудь есть какие нибудь ссылки на подобные исходники программ часов(неважно каких) на CVAVR дайте чтоб непосредственно учиться на каком либо протипе проекта!
Добавлено: Ср сен 17, 2008 17:41:57
ARV
вообще-то часы желательно делать по прерываниям от таймера, но в принципе можно и без... вот вам намек, как сделать бесконечный цикл, чтобы в нем каждую секунду переменная увеличивалась на 1:
Код: Выделить всё
int Sec;
while(1){
delay_ms(1000);
Sec++;
}
смотрите внимательно - все четко по вашему алгоритму:
Степаныч писал(а):нужно создать переменную например Sec, далее присвоить значение 0, потом прибавить 1, потом организовать задержку в 1000ms, затем опять прибавить 1 и т.д.
Добавлено: Ср сен 17, 2008 18:35:57
tych
Степаныч писал(а): если у кого нибудь есть какие нибудь ссылки на подобные исходники на CVAVR дайте чтоб непосредственно учиться на каком либо протипе проекта
Посмотрите на стр. 6 в моей домашней страничке.
Добавлено: Ср сен 17, 2008 19:32:34
KIP
Нежданно возникла проблемма с компиляцией: по каким-то причинам не создаётся .cof файл c расширением __.c. Не могу понять в чём дело - в конфиге этот тип файла указан.
Глюки пошли после установки CVAVR на новый комп.
Добавлено: Ср сен 17, 2008 19:41:49
ARV
посмотрите на домашнюю стр.
tych-а

Добавлено: Ср сен 17, 2008 19:50:04
tych
KIP писал(а): не создаётся .cof файл c расширением __.c
Не волнуйтесь -
еще ни кому не удалось заставить CVAVR такой создать !KIP писал(а): Не могу понять в чём дело
дело в том что это 2 разных файла.
Добавлено: Ср сен 17, 2008 20:30:51
KIP
tych писал(а): дело в том что это 2 разных файла.
Да, я ошибся.
У меня не создаётся c расширением __.c. В итоге VMLAB не может работать.
Добавлено: Ср сен 17, 2008 20:34:03
KIP
ARV писал(а):посмотрите на домашнюю стр.
tych-а

Собствено по ней и осваивал эту связку CV и VMLAB, всё было впорядке.
Добавлено: Ср сен 17, 2008 20:34:51
tych
Прекрасно гадать на кофейной гуще которая в каждом доме есть.
А ваш проект не у каждого имеется.
Добавлено: Ср сен 17, 2008 20:40:04
ARV
KIP писал(а):Собствено по ней и осваивал эту связку CV и VMLAB, всё было впорядке.
результат на лицо... продолжайте в том же духе

я ж не зря вас направляю к истокам знаний

Добавлено: Ср сен 17, 2008 21:13:27
KIP
tych писал(а): А ваш проект не у каждого имеется.
Дело в программе, что-то слетело...
Даже в рабочих некогда проектах, сейчас попробовал, файл для симуляотра не обновляется.
Установил версию посвежее-работает)
Добавлено: Ср сен 17, 2008 23:39:35
KIP
Рано я начал радоваться. Нормально прошли только первые несколько компиляций, последущие уже не вносили изменения в файл _.с. VMLAB не реагировал на изменения кода.
Если кто-то сталкивался с чем-то подобным или имеет предположения прошу ответить. Бросать CVAVR очень не хочу.
Добавлено: Пт сен 19, 2008 12:30:07
Барсик
KIP писал(а):...Бросать CVAVR очень не хочу.
Забейте в VMLAB и используйте в качестве отладчика AVR Studio. Как прикрутить AVR Studio к CodeVisionAVR, написано здесь:
http://www.pro-radio.ru/controllers/6585/
А Ваша проблема, как отсчитать 1 секунду, обсуждалась здесь:
http://radiokot.ru/forum/viewtopic.php? ... &start=580
Добавлено: Пт сен 19, 2008 13:07:40
KIP
Судя по описанию, файл с расширением _.c AVR Studio не нужен - буду пробовать.
Это спрашивал не я, такое я уже умею)
Добавлено: Пн сен 22, 2008 12:34:06
Telek
Непонятки с кодом:
Код: Выделить всё
signed char menu_V_position;
menu_V_position-- ;
if (menu_V_position<0) menu_V_position=2;
Если menu_V_position становится меньше нуля, то условие не срабатывает... т.е. как будто -1 больше нуля...
если вместо signed char указать int - работает...
Как победить?
Добавлено: Пн сен 22, 2008 17:11:55
Krik99
попробуй так:
Код: Выделить всё
char menu_V_position;
menu_V_position-- ;
if (menu_V_position<0) menu_V_position=2;
Добавлено: Пн сен 22, 2008 17:38:36
Telek
Krik99 писал(а):попробуй так:
Код: Выделить всё
char menu_V_position;
menu_V_position-- ;
if (menu_V_position<0) menu_V_position=2;
На так CVAVR соответственно пишет ворнинг, т.к. "меньше 0" не входит в диапазон char и соответвенно тоже не работает... т.к. menu_V_position-- дает 255,254,253 и т.д. Т.е. так как и должно быть, т.к. чар по умолчанию без знака.
Вот какого болта оно не считает "меньше нуля" -1,-2,-3
Причем в моем варианте if (menu_V_position==-1) menu_V_position=2;
работает, но хочется общего варианта "<0" - а оно не работает...
Добавлено: Пн сен 22, 2008 18:23:41
tych
Telek писал(а):Вот какого болта оно не считает "меньше нуля" -1,-2,-3
...
Наверно нужно переубедить CVAVR в свойствах проекта что ЧАР и меньше нуля бывает.
Добавлено: Пн сен 22, 2008 20:41:35
Telek
tych писал(а):Telek писал(а):Вот какого болта оно не считает "меньше нуля" -1,-2,-3
...
Наверно нужно переубедить CVAVR в свойствах проекта что ЧАР и меньше нуля бывает.
А можно поподробней? где его еще убеждать?
Вроде явно написал signed char?
более того, если написать так:
Код: Выделить всё
signed char zero;
signed char menu_V_position;
zero=0;
menu_V_position-- ;
if (menu_V_position<zero) menu_V_position=2;
т.е. когда явно идет сравнение двух signed char, то все равно болт...