5510E/TCP - потери при передаче через RS232 |
Ответить | Страница <12 |
Автор | |
Участник Присоединился: 02 Декабрь 2010 Online Status: Offline Публикации: 68 |
Опубликовано: 17 Март 2011 14:58 |
Это верное решение :)))) И еще маленький вопросик: я правильно понимаю, что если использовать другой порт просто меняем базовый адрес, например COM2 == 0x02F8, COM4 = 0x02E8 ?
Да именно так только плюс смещение 5; И можно ли это применять, если поставить в COM-порты режим 485 ? Я думую что можно т.к. регистры работают с самим передатчиком Uart а на фезический уровень это не как нераспространяются. |
|
Новичок Присоединился: 02 Февраль 2011 Online Status: Offline Публикации: 25 |
|
Еще: попробовал SIO_SendBytes(..) - 30 байт успешно передается, а если 1024 - уже нет... дальше не стал испытывать, потому как просто добавил в 5510drv.h строчку: #define com_busy() ((inportb (0x03F8 + 5) & 0x20) == 0) а в программе добавил: for (i=0; i<BUFSIZE;i++) { while (com_busy()); com_tx(buf[i]); } теперь вроде все нормально (тьфу-тьфу :-))) |
|
Участник Присоединился: 02 Декабрь 2010 Online Status: Offline Публикации: 68 |
|
SIO_SendBytes больше 600 байт непередает это видно здесь:
_TEXT:059B mov si, [bp+arg_4] ; где arg_4 колличество байт для передачи _TEXT:059E ; #line 939 _TEXT:059E cmp si, 258h _TEXT:05A2 jb short loc_105AA ; идти дальше _TEXT:05A7 jmp loc_107DC ; выход из процедуры Кстате эта функция возвращает коды: если 0 - все ок; если не 0 - передача неудалась и еще эта функция использует прерывания по передачи, т.е. вы можете заполнить буффер 600 байт и продолжать другие вычесления пока функция com_tx_empty() не вернет 1 |
|
Новичок Присоединился: 02 Февраль 2011 Online Status: Offline Публикации: 25 |
|
Да, спасибо большое. И, просто остается посетовать, что Advantech прилагает именно библиотеки, а не обычные нормальные исходники... :-( ведь иногда нужно чуть-чуть где-то подправить или просто обрезать неисползованные функциии. Ладно, прорвемся :) |
|
Ответить | Страница <12 |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |