完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,我的芯片是PIC18F46K22,使用XC8编译器。我用下面的代码每100毫秒检查一个按钮的状态。我试图为它实现一个状态机,以便我能够检测当前按钮的状态是在循环通过前一个st之后到达的。ATE和它不只是相同的逻辑水平。请建议这样做是正确的吗?非常感谢您的帮助。编辑:RB1代码中的校正
|
|
相关推荐
10个回答
|
|
当我在每100毫秒后一次按下按钮时(一次在超级循环中),它能提供一些反弹跳效果吗?硬件也没有反弹。
|
|
|
|
是的,这是一个排版,现在已经更正了。你能解释一下Re0的倒数吗?
|
|
|
|
如果Re0==0,则你的代码是基本的,那么fp==1fpf= 0SO -非常粗糙- fp= =!Re0
|
|
|
|
我现在把我的代码改为:现在比以前好了吗?正确的状态机实现是读取按钮并隐式地消除机械弹跳问题吗?我怎么能比读按钮更好呢?在硬件上,在GPIO引脚上有一个上拉电阻10 K,PB连接在GPIO引脚和GND之间。
|
|
|
|
研究这一点。
|
|
|
|
如果我理解正确,按钮每100ms调用一次。看起来您首先要查找更改,然后如果在第二次传递时情况匹配,则要更改FP_Ignition_Input变量。我认为以下内容可以简化事情:
void按钮(void){如果(PoptBIT.Re0!= PrimeRe0)PrimaRe0= PoTePix.Re0;否则FPiGiixTyOnPix=!Re0;} & lt;/代码& Gt;编辑:使用第三运算符,逻辑变成单行。
|
|
|
|
“一元运算符”是运算符的术语,如:+!~+--还有地址和指针&*试着在gnd和开关输出之间设置一个100nF的上限。假设这个芯片有施密特触发器输入,那么你将不会得到任何反弹。如果这个芯片有Change Notify你可以得到上下开关状态,甚至双击也是可能的。让硬件为你做。
|
|
|
|
是的,但我写的是三元的,不是一元的。三元是为?接线员。三元不第三次。
|
|
|
|
是的,但我写的是三元的,不是一元的。三元是为?接线员。三元不是三元,我是指三元(?)用:)。有时脑部放屁…
|
|
|
|
是的,但我写的是三元的,不是一元的。三元是为?接线员。三元不是三元,我是指三元(?)用:)。有时脑子放屁……或者Gorts…眨眼:
|
|
|
|
只有小组成员才能发言,加入小组>>
4828 浏览 9 评论
1832 浏览 8 评论
1752 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
2958 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2062 浏览 5 评论
463浏览 1评论
1112浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
366浏览 0评论
265浏览 0评论
LAN9252使用SQI通信,进行数字复位后读BYTE_TEST异常
1806浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-28 13:58 , Processed in 1.201255 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号