#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](); }
一种常见的单片机架构实现方式说明
猜你喜欢
转载自blog.csdn.net/m19930517/article/details/79962886
今日推荐
周排行