Програмирование COM2 для RTU188 и Ultralo |
Ответить |
Автор | ||
Новичок Присоединился: 22 Август 2005 Категория: Russian Federation Online Status: Offline Публикации: 5 |
Опубликовано: 22 Август 2005 15:41 |
|
Пытаюсь написать внешний модуль для
обмена с уникальным устройством через COM2. Использую части кода из примеров прилагаемых Fastwell-ом для CPU188, основанные на 14-ом прерывании. Всё вроде бы компилируется без ошибок. Но при заливке на контроллер и запуске происходит застревание кажется на вызове delay(1). В чём может быть проблма? Что я могу делать не так? Может ли кто выслать мне примеры програмирования портов (на VPashka dot yandex.ru)? |
||
Новичок Присоединился: 22 Август 2005 Категория: Russian Federation Online Status: Offline Публикации: 5 |
||
Ну для будущих поколений сам и отвечу...
После долгой возни выяснил следующие вещи: Если просто пишешь на C программку. То всё прекрасно. delay - работает, лампочки мигают и т.п. Если же пишется "внешний" вызов для использования в UltraLogic, то здесь возникнут проблемы. По крайней мере, у меня стабильно происходило зависание и на delay и на sleep. Видимо эти функции чт-то там нарушают... (в "генерируемой" UL-ем программе). И соответственно их использовать нельзя... |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
||
delay совместно с UltraLogik использовать, конечно, не стоит. Лучше пользоваться встроенными в UL таймерами. Связано это, я думаю, с тем, что UL перепрограммирует системный таймер под свои нужды. А delay использует его для расчета количества циклов, необходимых для задержки. Что касается работы с портами в CPU188, достаю покрытый пылью исходник соответствующего модуля. Наверняка что-то в нем нужно подправить, но по RS-232 он работал (и до сих пор, надеюсь, работает ). Здесь используется прямой доступ к портам. Как им пользоваться, думаю, разберётесь.
=== начало ser188.c #include <dos.h> static unsigned intrpt = 0x11; void interrupt new_handler() state = inpw (ASYNC_SP1STS); // prototypes for these functions are in serialx.h: void async_disable_transmit (void) void async_enable_transmit (void) void async_disable_receive (void) void async_enable_receive (void) void async_install_handler (void) void async_unmask_interrupts (void) void async_init_port (void) void async_uninstall_handler (void) === конец ser188.c
=== начало uart188.h // UART - compatibility constants for CPU188-5 #ifndef FREQUENCY #define COM1BASE 0xff80 #define LCR 0x0000 // control register offset // always use 8 data bits #define LSR 0x0002 // line status register offset #define DR ASYNC_RDR // data ready #define THR 0x0004 // transmitter holding register offset // These values are frequency dependent. See FREQUENCY === конец uart188.h
=== начало am188es.h // Am188ES registers // SP0CT and SP1CT register values // SP0STS and SP1STS register values // interrupt control register values // AUXCON register values === конец am188es.h |
||
Инженер-системотехник
+7 (916) 477 3925 |
||
Новичок Присоединился: 22 Август 2005 Категория: Russian Federation Online Status: Offline Публикации: 5 |
||
Примерно так я и думал. Судя по документации
Спасибо большое! Буду изучать... |
||
Новичок Присоединился: 22 Август 2005 Категория: Russian Federation Online Status: Offline Публикации: 5 |
||
Я конечно жутко извиняюсь, а файл "serialx.h" представляет интерес? А то его не приложили... |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
||
Plcrtl.lib - это, фактически, runtime библиотека, используемая программами на UL. К сожалению, функции в ней никак не документированы. |
||
Инженер-системотехник
+7 (916) 477 3925 |
||
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
||
Нет, там прототипы используемых функций и внешних переменных. |
||
Инженер-системотехник
+7 (916) 477 3925 |
||
Новичок Присоединился: 22 Август 2005 Категория: Russian Federation Online Status: Offline Публикации: 5 |
||
Ну кажется программа "задышала".
Спасибо огромное за ответы и исходники. На примерах кода, всегда лече понять. Спасибо. |
||
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |