用ADXL345做了一个计步器,想用两个按键中断分别控制计步器暂停和和开始。

谁能写个程序或者提供思路给参考参考... 谁能写个程序或者提供思路给参考参考 展开
 我来答
zhengcheng2717
2016-05-19 · TA获得超过145个赞
知道小有建树答主
回答量:52
采纳率:0%
帮助的人:44.8万
展开全部
没必要使用按键中断
只需检测按键是否按下就行了
我以前也做过一个计步器,用一个按键控制暂停和开始
假设按键检测函数是 int Key_test();//返回值是1的话表示key1按下 ,2表示key2按下,没按下返回0
那么可以这样做
unsigned char Key_Flag == 0;
void mian()
{
Key_Flag = Key_Test();

while(Key_Flag == 1)
{
//上面可以写你想要执行的程序,下面检测到按键2按下就跳出这个循环

Key_Flag = Key_Test();//
if(Key_Flag == 2)
break; //跳出该死循环
}  

while(Key_Flag == 2)
{
//上面可以写你想要执行的程序,下面检测到按键1按下就跳出这个循环

Key_Flag = Key_Test();//
if(Key_Flag == 1)
break; //跳出该死循环
}

//这样的话程序只在这两个循环内执行,要么计数,要么暂停,使用一个按键也可以进行切换,原理都差不多
}
更多追问追答
追问
还有另外的问题是,不知道暂停和开始是控制ADXL345的什么信号(也就是说不知道按键控制了什么信号致使它开始或暂停)
追答
我记得ADXL345可以用SPI和IIC两种方式与单片机通信,无论哪种方式,ADXL345不会主动输出重力值,必须要由单片机去读取才能知道当前的重力值,假如我第一个循环是计数,第二个循环是暂停的话,当我进入第二个循环后,单片机不去读ADXL345的重力值仅仅显示当前的步数就可以了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式