_artem_ 0 4 июля, 2006 Опубликовано 4 июля, 2006 · Жалоба Вопрос стратегически тактического подхода - нужно вывести буфер в lcd 4х20 = 80 знаков na Hitachi lcd . Дело втом что стоит менюподобная система работаюшая внутри задачки с самым низким приоритетом. Сначала содержание экрана записывается в буфер а затем буфер копируется один к одному на lcd. Такая кофнигурация сделана потому что меню манагер поддерживает псевдовиджеты на символьном lcd с последуюшим развитием ан графический дисплей. Технические требования таковы : - прерывания не должны влиять на замешение задачи на другую с более высоким приоритетом - вывод на экран не должен прерывать запись одного байта (4 битовый режим) - вывод на экран может прерываться в течении времени после окончания записи одного знака и до начала записи другого Есть несколько решений этого дела , просто интересно как другие делают подобное : - самое простое полностю запретить прерывания - на период записи искуственно поднять приоритет записываюшей задачи на максимальный - делать ucos неадаптированное прерывание с незадействованным таймером а коротать время в задаче поллингом volatile переменной изменяемой по прерыванию от таймера при записи знака. - сделать отдельную задачу записи знака на lcd работаюший на максимальном приоритете (чтото типа kernel level) и в последуиюшем адаптуировать ее к подобным задачам интерфейса с периферией . использование семафоров и мютексов для задержки во время записи знака нежелательно так как context switch на avr требует большого времени. интересно услышать ваши мнения . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_artem_ 0 4 июля, 2006 Опубликовано 4 июля, 2006 · Жалоба .... mожно еще пару OS_SchedLock() and OS_SchedUnlock() применить . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться