一种常见的单片机架构实现方式说明


#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]();
		   
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值