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&&LastData
1)/边沿判定的方法,避免了重复的去执行某一函数/
{
//Do something
}
LastData = RegData;
}
}

posted @ 2018-09-04 15:52  hostid  阅读(156)  评论(0)    收藏  举报