#define num 3 //任务的数量,和func_x中形参数量需对应
typedef void (*p)(void); //定义一个函数指针
void func_1(void); //对你的任务1进行声明
void func_2(void); //对你的任务2进行声明
void func_3(void); //对你的任务3进行声明
/**********************************************************************************/
随着产品功能的升级,需要添加或者删除的功能越来越多。增加了代码维护的困难程度。
采用这种架构,将添/删功能写成一个API函数,并将形参中对应API函数的名字添加/删除即可。
/**********************************************************************************/
p func_x[num]=
{
/*************************/
//运行任务test1
/*************************/
func_1,
/*************************/
//运行任务test2
/*************************/
func_2,
/*************************/
//运行任务test3
/*************************/
func_3,
/*************************/
//添加api函数
/*************************/
//对应api函数名
};
/********************************/
//任务test1具体实现
/********************************/
void func_1(void)
{
printf("运行任务1");
}
/********************************/
//任务test2具体实现
/********************************/
void func_2(void)
{
printf("运行任务2");
}
/********************************/
//任务test3具体实现
/********************************/
void func_3(void)
{
printf("运行任务3");
}
/**********************************************************************************/
根据你的需要,对i的值进行不同赋值,从而实现对应任务的执行
/**********************************************************************************/
int run_test (void)
{
unsigned int i=0;
/***************/
//i=你的赋值;
/*************/
//执行对应任务,注意i<num
func_x[i]();
}
一种常见的单片机架构实现方式说明
最新推荐文章于 2024-10-17 17:58:13 发布