|
Собственная библиотека для ADAM 5510 |
|
продолжаем 10 часть пример
файл main.cpp #include "sio.h" #include <stdio.h> //--------------------------------------------------------------------------------- void main(void) { int main(void) { char sendcmd[2000]; char recvcmd[2000]; unsigned int i; sio_com_t nport = SIO_COM1; for(i=0;i<256;i++) sendcmd = (char)i; printf ("Start\n"); sio_open(nport, SIO_BLOCK_MODE, 512, 512); sio_configure(nport, SIO_BPS_19200, SIO_PAR_NONE, SIO_DATA8, SIO_STOP1); sio_send(nport, (const char *)sendcmd, 256); sio_recv(nport, (char *)recvcmd, 5); i = 0; for (i = 0; i<6; i++) { printf("%c(%Xh)\t", recvcmd,(recvcmd&0x00ff)); } sio_close(nport); printf ("\n\nm_err = %d\n", sioerrno); printf ("End\n"); } } |
|
![]() |
|
|
ОГРОМНОЕ спасибо - переведу на Pascal - выложу...
|
|
![]() |
|
Какие то объемные листинги, статьи, и другие материалы наверное удобнее выкладывать в разделе on-line публикаций (http://www.cta.ru/online/online_rubriki.htm). А в форуме давать просто ссылку на эти публикации. Кому интересно туда посмотрят. Иначе получается что те кто подписан на автоматическое получение сообщений с форума вынужден получать множество объемных писем на тему которая их возможно не интересует.
|
|
![]() |
|
|
Извиняюсь за неудобства!
Проста у меня нет возможности работать с не корпоративными почтовыми ящиками. |
|
![]() |
|
Я не вижу связи предложенного алгоритма с какими либо почтовыми ящиками. Оформляете в произвольной форме свой листинг с произвольного размера комментариями, примерами использования, фотографиями и т.п. посылаете на info@cta.ru с просьбой выложить файл в разделе on-line публикаций. После выкладывания пишете в форум сообщение со ссылкой на Вашу статью.
|
|
![]() |
|
|
С рабочего компьютера где лежат все исходники я не могу отправить на
почтовый адрес info@cta.ru, объщаться по ICQ, чатам и скайпу также не
могу сохранить на флешку или еще куда, для общения только форумы открыты.
P.S корпоративная безопасность блин |
|
![]() |
|
|
Привет, Олег (узнал? :) )
Можешь попробовать зарегаться на любом форуме, в который можно прицепить аттач. Запаковать зипом архив и сунуть на форум или какой нить файлообменник как аттач. Я так делал (на форум заливал) :) А далее, можно будет выложить код на google.code или на gitorious или еще на что. Только комментарии на англицком переписать. И кто захочет - сможет там добавлять, новые библиотеки для работы с модулями I/O и т.п., если конечно, те люди не халявщики и не жадины. :) |
|
![]() |
|
|
Я б сам это сделал, но ты знаешь что не могу теперь :)
|
|
![]() |
|
|
Для 3 порта (программирования) данные передаются.
По портам 1, 2 и 4 передавать данные не могу... Пока передаётся только первый байт из буфера... Не нашёл нигде: 1) в процедуре передачи в конце обычно стоит: port[uart_ier] := port[uart_ier] or IER_XMT; 2) в обработчике прерываний на передачу при IndHead=IndTail обычно делают port[uart_ier] := port[uart_ier] AND NOT IER_XMT; Разгребаюсь дальше... |
|
![]() |
|
|
У вас ошибка в функции com_port.write(b:byte)
with bufs[nCom] do begin t_buffer^[t_tail] := b; inc(t_tail); if t_tail > t_size then t_tail := 0; if (t_tail = t_head) then begin inc(t_head); {overflow} if t_head > t_size then t_head:=0; end; Inline(disable_interrupts); port[uart_ier] := port[uart_ier] or 2; Inline(Enable_Interrupts); end; Здесь будет передаваться 1 байт - по таму-что вы переполняете FIFO буфер, непонятно почему FIFO не инициализировалась до 16 байт. Но все равно если вы его инициализировали до 16 эта процедура будет передовать 16 байт потом опять переполнится |
|
![]() |
|
Ответить
|
Страница <1234> |
| Переход на форум | Права доступа на форуме ![]() Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |