[an error occurred while processing this directive] [an error occurred while processing this directive]
да вряд ли это поможет
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Cat_Thomas 26 октября 2001 г. 01:25
В ответ на: А Вы не могли бы привести структуру программы? отправлено AlexD 25 октября 2001 г. 16:49

Да ничего особенного.
Вряд ли это чем-то поможет короткое описание, а длинное слишком длинно - я же не предложу Вам разбираться в программе из нескольких тысяч строк. Сам бы не стал возиться.

//**************************************************
global vars ( со спецификаторами DATA, IDATA, PDATA к каждому)
{
куча подпрограмм
}
{
прерывания Tm0, Tm1, Rx/Tx
опрос клавиатуры()
}
main()
{
вывод_экранного_меню();

COMMAND_ANALYS:

опрос_буффера_rs232();
опрос_буффера_клавиатуры();
обновление_экранного_меню_при_изменениях();
формирование_комманд_управления_при_необходимости();

if( в_буффере_есть_новые_нажатия() )
{
switch( нужно_переключать_режим )
{
case режим_управления :
// флажок перехода в управление
case режим_выбора_из_меню :
// флажок перехода в меню
case режим_отладки :
// всякое для отладки
default :
// crazy - так не бывает
}

if( управление ) // это блок, который обхожу по goto в настройке
{
обработка_по_отдельности_команд_настройки_параметров()
}

if( меню ) // это блок, который обхожу по goto в настройке
{
обработка _комманд_выбора_из_экранного_меню();
}
}
goto COMMAND_ANALYS;
}
//*********************************************

собственно говоря, это программа должна решаться режиме multitask, но не было времени и сделал по старинке.

Cat_Thomas

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

Ответы



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

E-mail: info@telesys.ru