![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| baphonet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 27.7.2005 Репутация: нет Всего: нет |
Данные после обработки требуется отсылать на комп через com-порт. Как добиться максимальной скорости передачи данных? Пока это выглядит так (между каждым отправленным байтом вставляется задержка):
Нормальную задержку тяжеловато будет подобрать, а с этой слишком большой интервал между отправками. Может это можно замутить при помощи прерываний? Как это будет выглядеть? И, кстати, где можно по-подробней почитать про работу с прерываниями в aduc812? |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 1 Всего: 110 |
обычно, в COM-портах используется такой подход:
делается специальная линия от компьютера к устройству, которая показывает, готов ли компьютер принимать байты, как только линия говорит, что готов (не помню, 0 там или 1), посылается следующий байт (если, конечно, не все еще послались) соответственно и в обратную сторону тоже делается такая линия линии эти называются CTS и RTS (не помню какая из CTS, а какая RTS, но принцип у них одинаковый) если этих линий нет, придется придумать маленький протокольчик над потоком байт: например, после каждого принятого байта отсылать его обратно таким образом можно добиться max/2 скорости в принципе, думаю, если немного изменить схему, можно посылать следующий байт, пока передается подтверждение предыдущего, и таким образом преодолеть порог max/2, но там сложнее получится... -------------------- qqq |
|||
|
||||
| baphonet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 27.7.2005 Репутация: нет Всего: нет |
А когда вообще с com-порта приходят прерывания? То есть в каком случае будет выполнен Код из какого-нибудь такого куска?
|
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 1 Всего: 110 |
ну это зависит от реализации в самом простом случае: 1. на посылку - когда закончился (или начал - зависит от наличия доп.буфера) посылаться очередной байт 2. на прием - когда что-то щакончило приниматься бывают более "навороченные" контроллеры - сами занимаются CTS, RTS, поддерживают DMA если же ни CTS, ни RTS нету, а засорять поток данных подтверждениями не хочется, можно сделать обработку этих сигналов в своей программе (только их надо завести на свободные флажки общего назначения) -------------------- qqq |
|||
|
||||
| PILOT |
|
|||
|
производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Придумываешь протокол обмена с квитированием, т.е. со служебными посылками.
СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
| baphonet |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 27.7.2005 Репутация: нет Всего: нет |
Народ, а чтобы повысить скорость передачи в два раза, как именно надо юзать PCON.7 ? Просто вставить SETB PCON.7 после инициации порта?
|
|||
|
||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |