请问51单片机代码在主函数的死循环里面进行函数调用,并反复把返回值赋给主函数里面的一个局部变量,会导致溢出的ram操作吗?
不会导致RAM溢出。
因为函数调用栈是在执行函数时同时开辟了一块局部空间,用于存储该函数内部使用的变量和寄存器,当函数执行完毕后,栈自动弹出,内部所使用的空间就被回收,这样不会导致 RAM 空间耗尽。
在主函数中定义的局部变量也仅占用一小块RAM空间,对于51单片机来说,通常有较为充足的RAM空间可以使用。但是需要注意到局部变量作用域只限于主函数中,如果超出作用域,那么其所占用的内存则会被释放。因此,在使用局部变量时应该注意其作用域范围,确保不能在过早或过迟的时候释放内存,造成意外结果。
注意返回值如果是指针的话,要考虑指针是否有变为野指针
main()
{
Init_Timer0();
while(1);
}
要先在
main函数
里先调用定时器0初始化配置
,才能正常使用它。
1.待计时达到我们设置的数值时,程序会自动跳入定时器中断程序
2.进入以后 会重新给TH、TL
重新赋值,以便下一次的计数。(程序会一直以设置的时长为周期反复进入中断
)这便是定时器中断
。