все ребяты, туплю по страшному. Монопольный доступ к ресурсу на примитивистком уровне без OS . Безопасен ли код с точки зрения взаимной блокировки и прочей дряни (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

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

Отправлено DASM 23 октября 2004 г. 10:54

просто на одной шине LCD и touch screen. Опрос клавы в прерываниях, вывод на дисплей в фоне. Поставил простейший семафор, но чего-то тут кажись не так. Задачка совершенно детская, но туплю
Код такой.


volatile bool bBusLocked = false;
volatile bool bEnableBusLock = false;

void Timer0Interrupt()
{
if (bBusLocked) return;
bEnableBusLock = false;
if (!KeyScanProc()) return;
bEnableBusLock = true;
}
int main ()
{
while (!bEnableBusLock)
; // wait for free lcd/keyboard bus
bBusLocked = true; // hold bus
RefreshLcd();
bBusLocked = false;
Sleep (1); // let interrupts handle keyboard
}


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

Ответы



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

E-mail: info@telesys.ru