[an error occurred while processing this directive]
Установка флагов из ISR не вызывает проблем...
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено VladimirM 22 августа 2002 г. 09:59
В ответ на: Картинка очень похожа... отправлено VladM 21 августа 2002 г. 18:08

проблема более, чем странная
Вот кусок кода:

void CommTask(void *pdata)
{
INT8U err;

pdata = pdata;
Com0Flags = OSFlagCreate(0, &err);
while(1)
{
M1: // вывод диагностики о входе в процедуру
...
OSFlagPend(Com0Flags, COM_RECEIVE, OS_FLAG_WAIT_SET_ANY + СONSUME, COM0_TIMEOUT, &err);
if(err == OS_NO_ERR)
{
M2: // вывод диагностики о входе
...
// просто эхо
Com0GetByte(&data)) Com0PutByte(data);
}
else
{
M3: // вывод диагностики о входе
...
}
}
}

Чудеса заключаются в том, что если не приема, то успешно выводится диагностика (метки M3 и M1).
При передаче хоть одного байта проходим метку M2, видим эхо, проходим метку M3, а дальше все виснет вообще.
Вот это и есть БОЛЬШАЯ НЕПОНЯТНОСТЬ.


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru