|
Как грамотные люди делают прием пакетов по USART |
|
|
|
 |
Ответов
|
Jun 6 2006, 09:38
|

Местный
  
Группа: Свой
Сообщений: 293
Регистрация: 14-03-06
Пользователь №: 15 254

|
Цитата(Sergiy @ Jun 6 2006, 13:15)  Да, обратите внимание на фразу, что в обработчиках прерывания должны быть краткие функции, и не в коем случае писать незя в ЕЕПРОМ, потому что процесс достаточно длителен (мс на байт), выставьте битовую переменную, что нужный пакет в буфере обмена и готовьте следующее окно (я использую двухоконные буфера), когда один заполняется, второй готов и константен для целевой функции - все довольны, а оперирую двумя битовыми флагами, один показывает, что новый буфер подготовлен и ожидает, а второй что какое окно надо пользовать в данный момент целевой функцией, первое может менять в активное состояние прерывание приемника, в пассивное возвращает целевая функция, а окна переключаются в инверсии, да два буфера хватит если есть простой в конце заполнения второго буфера и ждать пока не будет сброшен обработки первого буфера в целевой функции. Советик дельный, а вот что делать с размерностью буферов, ведь как известно памяти в AT90S2313 всего 128 байт надеюсь 2Х32 мне хватит через глаза.
|
|
|
|
|
Jun 7 2006, 08:03
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 29-05-06
Из: Netherlands (Delft)/Ukraine (Odessa)
Пользователь №: 17 547

|
Цитата(TamTam @ Jun 6 2006, 11:38)  Цитата(Sergiy @ Jun 6 2006, 13:15)  Да, обратите внимание на фразу, что в обработчиках прерывания должны быть краткие функции, и не в коем случае писать незя в ЕЕПРОМ, потому что процесс достаточно длителен (мс на байт), выставьте битовую переменную, что нужный пакет в буфере обмена и готовьте следующее окно (я использую двухоконные буфера), когда один заполняется, второй готов и константен для целевой функции - все довольны, а оперирую двумя битовыми флагами, один показывает, что новый буфер подготовлен и ожидает, а второй что какое окно надо пользовать в данный момент целевой функцией, первое может менять в активное состояние прерывание приемника, в пассивное возвращает целевая функция, а окна переключаются в инверсии, да два буфера хватит если есть простой в конце заполнения второго буфера и ждать пока не будет сброшен обработки первого буфера в целевой функции.
Советик дельный, а вот что делать с размерностью буферов, ведь как известно памяти в AT90S2313 всего 128 байт надеюсь 2Х32 мне хватит через глаза. Вообще все просто - надо брать размер буфера не менее чем максимальная длина пакета (он у вас наверное переменно
|
|
|
|
Сообщений в этой теме
TamTam Как грамотные люди делают прием пакетов по USART Jun 5 2006, 01:11 TamTam Цитата(kertis @ Jun 5 2006, 05:48) не оче... Jun 5 2006, 01:59 rat Принимаемый поток организуете Вы же? Если так, то ... Jun 5 2006, 02:36 TamTam Цитата(rat @ Jun 5 2006, 06:36) Принимаем... Jun 5 2006, 02:49 haker_fox Может быть эта ссылка Вам поможет? Jun 5 2006, 03:04 TamTam Цитата(haker_fox @ Jun 5 2006, 07:04) Мож... Jun 5 2006, 03:44 beer_warrior Идея правильная, вот пример кода который кочует из... Jun 5 2006, 05:24 WHALE Судя по 0A,0D-это модем.Действительн,в eeprom заче... Jun 5 2006, 05:44 vet Цитата(TamTam @ Jun 5 2006, 05:11) Ну нап... Jun 5 2006, 05:59 Nanobyte Лучше применять не RAM со всеми его недостатками, ... Jun 5 2006, 07:39 WHALE а почем нынче fram ? Jun 5 2006, 07:56 otrog Цитата(WHALE @ Jun 5 2006, 11:56) а почем... Jun 5 2006, 09:22 beer_warrior Насколько я понял человек пишет во внутреннюю EEPR... Jun 5 2006, 08:44 TamTam Цитата(WHALE @ Jun 5 2006, 09:44) Судя по... Jun 6 2006, 02:06 vesago Мне понравилось как у Атмела сделано. Я такую конс... Jun 6 2006, 08:08 TamTam Цитата(vesago @ Jun 6 2006, 12:08) Мне по... Jun 6 2006, 08:46 Sergiy Да, обратите внимание на фразу, что в обработчиках... Jun 6 2006, 09:15 Sergiy Цитата(TamTam @ Jun 6 2006, 11:38) Цитата... Jun 7 2006, 08:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|