51单片机的定时器初始化可以带参数吗 例如:void timer_init(uchar a,uchar b):

在中断中:
void Timer_0Interrupt(void) interrupt 1
{
TH0=a;
TL0=b;
CLKTO=~CLKTO;
x++;
}

第1个回答  2012-10-14
1、定时器初始化通常在51程序的开始设置。一般情况下,不需要。因为函数只调用一次就累赘了。
2、当定时器需要反复设定,在程序运行过程中,需要重复修改时。利用函数的模块化思想,当然代码效率更高、可读性、维护管理升级都是有益的。
3、函数设计时,局部变量标识符的取名应该更贴近该参数的含义。
4、语法上完全可以。根据需要定义函数,完善函数的功能。void timer_init(uchar a,uchar b){}

【补】在中断中,随时更新这个参数ab,是可以的。但是注意:中断服务里面的a、b应该是全局变量。函数定义中,形参不要和此相同。最终赋值给a、b。那么主程序调用timer_init()后,中断服务里面的初值就可以更新了。
第2个回答  2012-10-12
不可以吧, 没有这个用法呀

产生中断时就进这个中断里面去了, 又不是子函数, 需要调用它才运行本回答被网友采纳
第3个回答  2012-10-12
当然可以,和一般的函数相同。