Современные технологии автоматизации» («СТА») —  журнал для квалифицированных специалистов по промышленной автоматизации Форум СТА — современные технологии автоматизации Домашняя страница
Домашняя страница форума CTA Домашняя страница форума CTA > II. АСУТП и SCADA > Программное обеспечение
  Активные темы Активные темы
  FAQ FAQ  Искать в форуме   Зарегистрироваться Зарегистрироваться  Вход в систему Вход в систему

Проблема с ICP7188

 Ответить Ответить Страница  12>
Автор
Сообщение
Slaven Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 26 Июль 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 14
Свойства публикации Свойства публикации   Ответить, цитируя автора - Slaven Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Тема сообщения: Проблема с ICP7188
    Опубликовано: 26 Июль 2006 12:57
Здравствуйте...
у меня такая проблема - не работают скомпилированные программы на контроллере.
демки(bc 3.1) вливаю все работает..компилирую исходники демок на bc 3.1 с теми библиотеками которые к ним прилагались...компилируется все хорошо без каких-либо warnings и errors..вливаю, а они не работают. Я так понял, что не выполняется ни одна функция из библиотек. Попробовал с другими библиотеками таже фигня..перелил minios тоже бесполезно...I need help.
Заранее спасибо
Волею судеб мученик программирования для ICPCON
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июль 2006 07:08

1. В таком случае нужно обязательно начинать с элементарной программки типа Hello world и действовать последовательно. Берете диск, который поставляется с контроллером и ищете документацию на софт. Это pdf - файл, в котором можно найти подробное описание того, как именно нужно компилировать програму (включая настройки компилятора и наименования библиотек). Причем документацию нужно читать ОЧЕНЬ внимательно, т.к. важнейшие вещи (например, точные наименования нужных lib) зачастую упоминаются мельком.

 Дать более конкретные рекомендации сейчас не могу, поскольку работал я не с 7188, а с 8000й серией (железо похожее, но не то же самое). Могу только посоветовать попробовать следующее: Large memory model в настройках компилятора, 80186 instruction set, floating point emulation. Использовать библиотеку с индексом L (например 7188L.LIB). Библиотека должна точно соответствовать модификации контроллера (см. диск \NAPDOS\MiniOS7\MiniOS7_2.0\<модель контроллера>\).

2. Если же Вы в первую очередь взялись за XServer, то, по информации от работавших с ним товарищей, там нужно нехило поплясать с бубном для достижения результата (подбирать библиотеки и их порядок включения в проект методом научного тыка). Отсюда мораль: начинать с простых программ, см. пункт 1.

Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
Slaven Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 26 Июль 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 14
Свойства публикации Свойства публикации   Ответить, цитируя автора - Slaven Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июль 2006 08:05
В том то и дело что пробую на мелочи.)
Вот например:

#include"..\lib\7188e.h"

void main(void)
{
int type;

if(!(Is7188e())){
     Print("!0!");
     return;
}

type=Is7188e();
Print("!1!",type);
}
подключаем к проекту библиотечку 7188el.lib
компилим ( Large memory model в настройках компилятора, 80186 instruction set, floating point emulation)...все нормально
заливаем на контроллер
запускаем
и результат !0! ((((((
Вот я и сижу уже 2 дня бьюсь головой об стол...перечитал все доки которые шли в комплекте с ним и еще дюжину из инета и по minios и по icpdas ничего не помогает пробовал компилить small с библиотекой 7188es.lib тот же результат. Прога запускается, но функции библиотеки наотказ не может использовать. Если заливаю уже скомпилиные демки, которые шли с контроллером, то они нормально пускаются. Так, например, демка с использованием той же самой функции Is7188e() отрабатывает нормально. Перелил Minios и библиотеки - результат тот же...не арбайтен!

Волею судеб мученик программирования для ICPCON
Наверх
Slaven Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 26 Июль 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 14
Свойства публикации Свойства публикации   Ответить, цитируя автора - Slaven Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июль 2006 08:24
Все...трабл решен...не знаю почему,но такая фигня была только на моей машине...ради эксперимента сейчас пересел за другую и ,проделав все те же операции получил !1!. Странно очень...по идеи какая разница ведь com порт такой же)
Волею судеб мученик программирования для ICPCON
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июль 2006 08:33

Так значит функции из библиотек все-таки работают! У Вас работает Print и работает Is7188e. Если бы функции не работали, Вы бы получили зависание контроллера либо сообщение об ошибке...

Кроме того, существует множество модификаций контроллера 7188, которые можно отличить по буквам после цифр "7188" на корпусе девайса. На каждую модификацию существует своя функция из серии Is... Необходимо прежде всего убедиться, что Вы используете именно  функцию, которая соответствует контроллеру.

Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июль 2006 08:46

Сорри, ответил прежде, чем увидел Ваш последний пост.

Прошу пояснить, что значит "пересел на другую машину". Компиляция производилась на другом компьютере или просто подключили контроллер с той же программой к другой машине?

Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
Slaven Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 26 Июль 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 14
Свойства публикации Свойства публикации   Ответить, цитируя автора - Slaven Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июль 2006 08:48
и скомпилил и залил на контроллер с другой машины)
Волею судеб мученик программирования для ICPCON
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июль 2006 09:22

Трудно сказать что-то определенное. Во-первых, нужно сравнить настройки компилятора на разных машинах. Откуда заливали программу значения не имеет... СОМ-порт он и в Африке СОМ. Во-вторых, убедитесь, что в обоих случаях использовались одинаковые библиотеки. У китайцев куча версий этих библиотек, чем они отличаются определить трудно. Отличить их можно хотя бы по дате и размеру файла. Следует выбрать ту, что работает как надо и жить долго и счастливо. Кстати, скорее всего выбор верной библиотеки, скорее всего, связан с прошитой в данный момент ОС.

К слову, работают ли функции, которые Вы будете реально использовать в разрабатываемом устройстве (работа с СОМ-портом, с платами ввода-вывода и т.п.)?

Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
Slaven Смотреть выпадающим
Новичок
Новичок
Аватар

Присоединился: 26 Июль 2006
Категория: Russian Federation
Online Status: Offline
Публикации: 14
Свойства публикации Свойства публикации   Ответить, цитируя автора - Slaven Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июль 2006 11:47
да вот как раз таки...с функциями, которые мне нужны проблема)
мне необходимы фунции управления дискретными портами вывода DO...для простого посылания битиков 0 или 1
В библиотеке нашел только эти:
/* For PIO pins on I/O expansion BUS */
void SetDio4Dir(int dir);
void SetDio4High(void);
void SetDio4Low(void);
int GetDio4(void);

void SetDio9Dir(int dir);
void SetDio9High(void);
void SetDio9Low(void);
int GetDio9(void);

void SetDio14Dir(int dir);
void SetDio14High(void);
void SetDio14Low(void);
int GetDio14(void);

void SetTi0Dir(int dir);
void SetTi0High(void);
void SetTi0Low(void);
int GetTi0(void);

void SetTi1Dir(int dir);
void SetTi1High(void);
void SetTi1Low(void);
int GetTi1(void);

void SetTo0Dir(int dir);
void SetTo0High(void);
void SetTo0Low(void);
int GetTo0(void);

void SetTo1Dir(int dir);
void SetTo1High(void);
void SetTo1Low(void);
int GetTo1(void);

Во первых очень странно, что если на шине 6 портов DO..а функций для каждого нет, да и те которые есть ведут себя как-то неадекватно..например хочу поднять битик SetTo1High();
после чего вызываю GetTo1() чтобы посмотреть что получилось..а там все равно 0 (((
Волею судеб мученик программирования для ICPCON
Наверх
MuadDib Смотреть выпадающим
Действительный член
Действительный член
Аватар

Присоединился: 27 Июль 2006
Online Status: Offline
Публикации: 304
Свойства публикации Свойства публикации   Ответить, цитируя автора - MuadDib Ответить, цитируя автора -  ОтветитьОтвет Прямая ссылка на эту публикацию Опубликовано: 27 Июль 2006 12:56

Честно говоря, непонятно, о каких 6 дискретных портах идет речь. I/O expansion bus содержит 8-битные шины адреса и данных для подключения мезонинных модулей расширения (как родных, так и собранных собственными руками). Кроме того, там есть 3 пина, которые можно использовать для дискретного ввода-вывода и еще 4 порта, которые можно использовать и для работы с таймером, и для ввода-вывода. По-видимому, с этих пинов можно снять только ТТЛ-уровень, т.е. для реального их использования нужна дополнительная городьба. Лично я не сталкивался с применением этих пинов. Если разберетесь, как их следует использовать, пожалуйста напишите на форуме.

Как использовать перечисленные Вами функции, написано в печатном мануале по I/O expansion bus (стр 30-31). До того, как поднять битик, нужно установить направление на Output с помощью функции SetTo0Dir(). Параметр, отличный от нуля -input, нуль - output.

Как правило, в реальных приложениях в качестве УСО используются готовые мезонинные модули (например X111 - 13 портов DO). Демо-программы по их использованию есть на диске. С такими модулями не нужно ничего городить, Вы просто установите плату внутрь 7188, а для подключения внешней разводки будет использована клеммная колодка контроллера. Конечно, устройство, собственноручно спаянное на Prototype board - это тоже вариант. Если есть опыт в сборке электроники - дерзайте. Но при цене готового модуля дискретного ввода (вывода) порядка $20 собственноручная сборка оправдает себя только в случае производства крупных партий однотипных устройств...

Теория - это когда все знаешь, но ничего не работает.
Практика - это когда все работает, но никто не знает как.
Наверх
 Ответить Ответить Страница  12>

Переход на форум Права доступа на форуме Смотреть выпадающим

Bulletin Board Software by Web Wiz Forums® version 9.64
Powered by Web Wiz Forums Free Express Edition
Copyright ©2001-2009 Web Wiz