[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Да ничего особенного.
Вряд ли это чем-то поможет короткое описание, а длинное слишком длинно - я же не предложу Вам разбираться в программе из нескольких тысяч строк. Сам бы не стал возиться.
//**************************************************
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