[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Суть идеи та же, реализация несколько другая. Прога разбивается на задачи, которые оформляются в виде функций, которые вызываются по указателям. Не тратится время на 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