[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]

Отправлено Энди 23 апреля 2002 г. 12:45
В ответ на: Об этом надо было думать на этапе проектирования(+) отправлено AlexD 22 апреля 2002 г. 19:25

Суть идеи та же, реализация несколько другая. Прога разбивается на задачи, которые оформляются в виде функций, которые вызываются по указателям. Не тратится время на switch. Легче модифицировать программу. Хотя это, конечно от образа мышления зависит.
Грубо примерно так:

typedef unsigned char BYTE;

void f0(void);
void f1(void);
void f2(void);
void f3(void);

__flash void(*task[])(void)={f0,f1,f2,f3};

BYTE state;

void main(void)
{
for(;;)
{
//...
task[state]();
}
}

void f0(void)
{
//...
}

void f1(void)
{
//...
}

void f2(void)
{
//...
}

void f3(void)
{
//...
}



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

Ответы



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

E-mail: info@telesys.ru