Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
10.02.2009, 04:42
|
#111
|
Гражданин KAZUS.RU
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
|
Сообщение от kison
|
Т.е. требуется простая тупая адаптация под другой компилятор?
|
Именно так.
А на счет номиналов на схеме, вот вырезка из приклеенного здесь файла, вроде всё видно.
-- Прилагается рисунок: --
Прикрепленный файл: 9500825.rar
__________________
Не ошибается лишь тот, кто ни чего не делает!
|
|
|
|
10.02.2009, 06:08
|
#112
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от woroba
|
Сообщение от kison
|
Т.е. требуется простая тупая адаптация под другой компилятор?
|
Именно так.
|
А в чем глубокий смысл получения неработоспособной прошивки? Я может чего не понимаю просто? Для адаптации "в лоб" потребуется затратить на порядок больше труда, причем не мне, а Вам - подробно описать работу своей программы. Тех. задание получится намного короче. Тут достаточно общего алгоритма и нескольких цифр - пределы времени, температуры. Трудоемкость адаптации на первый взгляд тоже потребует больших трудозатрат, чем с нуля написать. Комментариев очень мало, поверьте, через два-три года этот исходник и автора в тупик поставит.
Вот например:
Код:
|
//////////////////////////////////////////////
void ind7 (unsigned char SEGM)
{
#asm("CLI")
UBRR=SEGM;
SA=UBRR.0;
SB=UBRR.1;
SC=UBRR.2;
SD=UBRR.3;
SE=UBRR.4;
SF=UBRR.5;
SG=UBRR.6;
#asm("sei")
} |
Что за функция еще догадаться можно, но причем тут регистр UBRR? И так по всему исходнику.
Сообщение от woroba
|
А на счет номиналов на схеме, вот вырезка из приклеенного здесь файла, вроде всё видно.
|
Это нужно только если переписывать программу. Но данных опять недостаточно - нужны пределы времени и температуры. Вообще уже хочется плюнуть на это - не хотите, как хотите. Я из Вас исходные данные как клещами вытягиваю. Денег мне не надо, девайс этот мне тоже не нужен. Я предложил переписать программу в качестве примера использования нормального оптимизирующего компилятора. А отношение с Вашей стороны как к продавцу на улице, пытающемуся Вам что то "впарить". Поверьте, начинает надоедать это уже.
В общем - хотите порт на ГЦЦ, пишите полное описание, вплоть до того, зачем каждая глобальная переменная. И что делает каждая функция. Хотите получить программу по алгоритму - давайте конкретные цифры времен, температур и т.д. Я это выше уже спрашивал. Вы ответили только на 1-ый вопрос. Ничего не хотите - так и скажите.
-- Прилагается рисунок: --
Прикрепленный файл: 9500825.rar
|
|
|
|
10.02.2009, 11:03
|
#113
|
Временная регистрация
Регистрация: 09.08.2005
Сообщений: 53
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Вопрос по связке CVAVR1.25.9 и Proteus 7 . Как начинающий пользуюсь этими инструментами.
А вопрос такой, при компиляции CV создает файл asm. Указываем его в Протеусе, и пытаемся его откомпилить AVRASM32 самого Протеуса.
На что компилятор выдает ошибку:
..2main.inc(1612) : error : Symbol is already defined by the .EQU directive
..2main.inc(1613) : error : Symbol is already defined by the .EQU directive
. . .
..2main.inc(161 ![Горд собой](images/smilies/icon_dovl.gif) : error : Symbol is already defined by the .EQU directive
смотрим что CVAVR там создал :
#ifndef __SLEEP_DEFINED__
#define __SLEEP_DEFINED__
.EQU __se_bit=0x80
.EQU __sm_mask=0x70
.EQU __sm_powerdown=0x20
.EQU __sm_powersave=0x30
.EQU __sm_standby=0x60
.EQU __sm_ext_standby=0x70
.EQU __sm_adc_noise_red=0x10
.SET power_ctrl_reg=mcucr
#endif
,хм, я как человек не знающий ASM, ну совсем поверхностно по интуиции методом тыка определил, что если сделать вот так
#ifndef __SLEEP_DEFINED__
#define __SLEEP_DEFINED__
.EQU _se_bit=0x80
.EQU _sm_mask=0x70
.EQU _sm_powerdown=0x20
.EQU _sm_powersave=0x30
.EQU _sm_standby=0x60
.EQU _sm_ext_standby=0x70
.EQU _sm_adc_noise_red=0x10
.SET power_ctrl_reg=mcucr
#endif
то все начинает работать, так сказать с первого пинка.
Только насколько это корректно я хз, но вроде при симуляции получается почти то что нужно.
Можно ли CVAVR заставить самому убирать такие гадости, а то замахался постоянно править после перекомпиляции.
Хотя конечно можно и не компилить в Протеусе а подсовывать .hex скомпилированный самим CVAVR.
|
|
|
|
10.02.2009, 11:09
|
#114
|
Временная регистрация
Регистрация: 09.08.2005
Сообщений: 53
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Знаю противники CVAVR скажут переходи на другой компилятор, наверное так и сделаю, только на данный момент надо немного времени.
|
|
|
|
10.02.2009, 12:12
|
#115
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
можно один раз изменить ИНК файл протеуса где первый раз определены эти штуки. Только копию вначале сделать для востановления.
CVAVR то тут при чем ? Он же не "создаватель АСМа" для последующего ассемблирования.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
10.02.2009, 13:08
|
#116
|
Временная регистрация
Регистрация: 09.08.2005
Сообщений: 53
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 1 сообщении
|
Сообщение от avr123-nm-ru
|
CVAVR то тут при чем ? Он же не "создаватель АСМа" для последующего ассемблирования.
|
Ну так средствами входящими в состав CVAVR создается файл с расширением .asm, который в последующем мы используем.
В данном случае имеется такая вот проблемка.
Еслиб Вы еще сказали где именно у Протеуса и что заменить или подправить, было бы вообще отлично.
|
|
|
|
10.02.2009, 13:12
|
#117
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Сообщение от Alexandr14
|
Ну так средствами входящими в состав CVAVR создается файл с расширением .asm, который в последующем мы используем.
|
Дак CVAVR для этого не предназначен !
Сообщение от Alexandr14
|
Еслиб Вы еще сказали где именно у Протеуса и что заменить или подправить, было бы вообще отлично.
|
Шукайте в папке протеуса файлы .inc под ваш МК - скорей всего так. Т.е. то место где было первое определение.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
10.02.2009, 13:14
|
#118
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Вобще не пойму нафига АСМ то вам ?
Работайте НОРМАЛЬНО - как все.
http://proteus123.narod.ru/01.htm
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
10.02.2009, 15:22
|
#119
|
Гражданин KAZUS.RU
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
|
Спасибо KISONу за помощь. Наконец отладил в железе GCCишный вариант своей прошивки.Результат не утешительный размер кода 2316байт, против 2004 байта CVAVR, и это при оптимизации Os(при других код ещё больше). И для того чтобы запихнуть его в 2313 пришлось часть фукционала закоментить.
Теперь о своих эмоциях при освоении WinAVR,к сожалению отрицательных больше.Только не поймите, что я говорю о том ,что CV лучше. Если бы он меня CV полностью устраивал, то не искал бы я ему замену.
Теперь что не понравилось в GCC:
1)Молчание об ошибках и предупреждениях. Не было никаких предупреждений когда я пытался без макроса присвоить значение переменной в EEPROM, когда я передавал функции
void name (unsigned int a), значение unsigned char
и из чего функция возвращала че попало.
2)Не удобство в работе с битовыми операциями.
3)Не преемственность версий. Старые макросы отменяются, новые вводяться.Поэтому старые проекты не компиляться в новых.
4)Ну и наконец увлекательная борьба с оптимизатором.Например
sind=2;
_delay_ms(1000.0);
sind=3;
от этой переменной зависит, что будет выводится на 7ми сегментный индикатор. А оптимизатор считает , а на фига промежуточное значение, давай сразу последнее.
Вобщем пошел грузить IAR4.11, как отлажу эту прогу в нем, сравним ощушения.
Здесь работающий проект в двух компиляторах.
Прикрепленный файл: 7593101.rar
__________________
Не ошибается лишь тот, кто ни чего не делает!
|
|
|
|
10.02.2009, 15:29
|
#120
|
Почётный гражданин KAZUS.RU
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
|
Цитата:
|
пошел грузить IAR4.11
|
Может лучше 5.11 full из соседней ветки
или с офсайта 5.20 демо полнофункционалбню.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 23:34.
|
|