Проблемы с программированием ADAM-5511 |
Ответить |
Автор | |
Новичок Присоединился: 05 Январь 2005 Категория: Russian Federation Online Status: Offline Публикации: 22 |
Опубликовано: 09 Февраль 2005 06:28 |
Всем привет... Я начал писать программы на ADAM-5511 и столкнулся с несколькими проблемами такого рода: 1) почему-то не работают функции задержки ADAMDelay() (из библиотеки Utility.lib) и delay() (из dos.h). Пробовал даже программную задержку установить циклом for, но ADAM посто зависает. Можно конечно через RTC извратиться, но это немного не удобно, точнее совсем не удобно. 2) не работает функция Get_BoardID(), вместо желанного идентификатора модуля выдает какую-то гадость про Borland.. 3) как я понял, в библиотеке comm.lib для ADAM-5511 описаны функции приема и передачи информации только для COM2, может есть библиотеки, где есть функции для COM1 (предполагается, что к этому порту подключается компьютер). Мож у кого есть какие исходники, а то я себя уже полным userom чувствую Заранее спасибо... |
|
With best regards
Andrew |
|
Новичок Присоединился: 07 Август 2003 Категория: Ukraine Online Status: Offline Публикации: 36 |
|
Я использовал для программирования ADAM5511 библиотеки для ADAM5510. Все указанные функции работали. Порты можно программировать используя inport outport с базовыми адресами 2f8 и 3f8 минуя функции библиотек. Для ADAM5510 много примеров есть, поставляемых с ПО
|
|
Prosoft.ru Присоединился: 21 Июнь 2003 Online Status: Offline Публикации: 432 |
|
1. 2. Delay из DOSа работать не будет. Что не работает ADAMDealy() странно. И сторая надпись странная. В какой модели компилируете? Компилятор какой, надо BC 3.1 3. Все функции из comm.lib com_232_***** - именно для порта COM1 (RS-232). Для RS-485 есть библиотека RIO.LIB с соотв. функциями.
|
|
Новичок Присоединился: 05 Январь 2005 Категория: Russian Federation Online Status: Offline Публикации: 22 |
|
С компилятором все нормально, использую BorlandC++v.3.1. Я делаю так: пишу программу, загружаю ее в ADAM, запускаю досовскую утилиту, устанавливаю на ADAMе DIP1 в "on", затем захожу в терминальный режим, перезагружаю ADAM, после перезагрузки моя программа автозагружается и в терминальном режиме отображается процесс выполнения моей программы, но на функции ADAMDelay() порграмма просто зависает... Далее, с Get_BoardID(). Сам не понимаю, почему эта функция не работает, вроде делаю все правильно: unsigned char BoardID; int SlotNumber=3; BoardID=Get_BoardID(SlotNumber); printf("%s\n, BoardID"); ...и выдает она всякую ерунду типа Borland C++ ...и т.д. Если есть какие библиотечки или examples, то вот мое мыло fox17j@yahoo.com буду очень признателен |
|
With best regards
Andrew |
|
Новичок Присоединился: 07 Август 2003 Категория: Ukraine Online Status: Offline Публикации: 36 |
|
/***********************************************************************/
for (i=0; i< 35; i++) number(); for (i=0; i< 45; i++) for (i=0; i< 45; i++) for (i=0; i< 45; i++) for (i=0; i< 45; i++) for (i=0; i< 45; i++) char rab1[80]; /* for (i=0; i< 40; i++) for (i=0; i< 34; i++) /***************************************************/ ADAMdelay(1); sprintf(buf,"%6.1f",TP[0]); for (i=0; i< 6; i++) if (termopara[0]==0) ADAMdelay(1); sprintf(buf,"%6.1f",TP[1]); for (i=0; i< 6; i++) if (termopara[1]==0) ADAMdelay(1); sprintf(buf,"%6.1f",TP[2]); for (i=0; i< 6; i++) if (termopara[2]==0) ADAMdelay(1); sprintf(buf,"%6.1f",TP[3]); for (i=0; i< 6; i++) if (termopara[3]==0) ADAMdelay(1); sprintf(buf,"%6.1f",TP[4]); for (i=0; i< 6; i++) if (termopara[4]==0) ADAMdelay(1); sprintf(buf,"%6.1f",TP[5]); for (i=0; i< 6; i++) if (termopara[5]==0) ADAMdelay(1); sprintf(buf,"%6.1f",TP[6]); for (i=0; i< 6; i++) if (termopara[6]==0) ADAMdelay(1); sprintf(buf,"%6d",Bdata5051[0]); for (i=0; i< 7; i++) if ( Bdata5051[0]== 0 ) p_0d0a();
ADAMdelay(1); sprintf(buf,"%6d",Bdata5051[1]); for (i=0; i< 7; i++) if ( Bdata5051[1]== 0 ) p_0d0a(); file://************************** sprintf(buf,"%6d",outpid0); for (i=0; i< 6; i++) sprintf(buf,"%6d",outpid1); for (i=0; i< 6; i++) tabl0(); sprintf(buf,"%6.2f",KP1); for (i=0; i< 6; i++) p_0d0a(); sprintf(buf,"%6.2f",KD1); for (i=0; i< 6; i++) p_0d0a(); sprintf(buf,"%6.2f",Ti1); for (i=0; i< 6; i++) p_0d0a(); sprintf(buf,"%6.2f",SP1); for (i=0; i< 6; i++) p_0d0a(); sprintf(buf,"%6.2f",KP2); for (i=0; i< 6; i++) p_0d0a(); sprintf(buf,"%6.2f",KD2); for (i=0; i< 6; i++) p_0d0a(); sprintf(buf,"%6.2f",Ti2); for (i=0; i< 6; i++) p_0d0a(); sprintf(buf,"%6.2f",SP2); for (i=0; i< 6; i++) p_0d0a(); outport(port,'T'); sprintf(buf,"%6.2f",Ts); for (i=0; i< 6; i++) p_0d0a(); outport(port,'T'); outport(port,'='); sprintf(buf,"%6.2f",Tf); for (i=0; i< 6; i++) p_0d0a(); p_scr(); sprintf(buf,"%s",msg1[0]); sprintf(buf,"%s",msg2[0]); sprintf(buf,"%s",msg3[0]); sprintf(buf,"%s",msg4[0]); sprintf(buf,"%s",msg5[0]); sprintf(buf,"%s",msg6[0]); sprintf(buf,"%s",msg7[0]); void slot_number(void) |
|
Действительный член Присоединился: 15 Октябрь 2003 Категория: Belarus Online Status: Offline Публикации: 141 |
|
На всякий случай проверьте на каком процеесоре сделана Ваш ADAM. Компиляторы Си (и Паскаля в том числе) в EXE-файл добавляют процедуру определения задержки для процедуры Delay. В случае наличия у Вас процессора RDC8000 - добавте в сецию инициализации любого модуля, подключенного к программе строчку "Test8086 := 0;". Нам это помогло (как это ни странно !). |
|
Новичок Присоединился: 05 Январь 2005 Категория: Russian Federation Online Status: Offline Публикации: 22 |
|
Спасибо за исходник, но я уже вышел из положения... Я взял библиотеки от ADAM-5510 и ADAM-5511 и собрал одну библиотеку, довольно-таки неплохо получилось не нужно извращаться с адресацией... Вот только возник один вопрос, я к ADAM-5510 нашел примеры с кучей библиотек, например есть такие comml.lib, commc.lib, commm.lib, comms.lib ..... utilityl.lib, utilityc.lib, utilitym.lib, utilitys.lib, вроде описания всех функций находятся в каждой из них, только вот чем они отличаются, например, библиотека *c.lib от *s.lib? А так, вроде, все путем... Большое спасибо |
|
With best regards
Andrew |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
|
Как это в Си обычно принято, последняя буква указывает на модель памяти: c - compact, s - small, и т. д. |
|
Инженер-системотехник
+7 (916) 477 3925 |
|
Prosoft.ru Присоединился: 21 Июнь 2003 Online Status: Offline Публикации: 432 |
|
Откомпилированы под разные модели памяти: compact, small и т. д. |
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |