C积累
1、问题描述: 当在某些应用场景中,我们会根据读取到的寄存器值来判断执行某一特定的函数,为了避免寄存器的值在不更新的情况下而重复执行某一特定的函数,可运行一下简单运算,可实现边沿检测触发。
Exzample:
void main()
{
u8 RegData = 0;
for(;😉
{
RegData = ReadRegister(0x01);
if(RegData == 1)
{
//Do something /重复判断,只要寄存器值不变换,重复执行该函数/
}
else
{
//Do something
}
}
}
代码改进:
void main()
{
u8 RegData = 0;
u8 LastData = 0;
for(;😉
{
RegData = ReadRegister(0x01);
if(RegData == 1&&LastData0) /边沿判定的方法,避免了重复的去执行某一函数/
{
//Do something /只有当寄存器的值更新后,才会执行且仅执行一次特定函数/
}
if((RegData == 0&&LastData1)/边沿判定的方法,避免了重复的去执行某一函数/
{
//Do something
}
LastData = RegData;
}
}
-------------------------------------- 适合自己的才是最好的!-----------------------------------------

浙公网安备 33010602011771号