完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嘿,我好像很难让我的I/O在我的设备上工作。目前,我有一个按钮,我只是试图切换一个LED,以确保我可以得到的I/O工作。我使用一个time1中断设置在100Hz中断;每个中断检查端口上的值。在3个样本(30MS)读取高之后,LED将切换。我知道我的ISR是写和设置正确的,因为我有一个LED切换每5秒(500个样本)。我使用3.3V调节器并从调节器输出按钮到端口B引脚0运行按钮。我知道管脚是读3.3V(用电表和电压表测试)。我试着翻转标准(有源低引脚和有源低按钮),上拉/下拉电阻,并阅读更多的样品(即100或1秒)。唯一改变结果的尝试是使引脚有源低与按钮连接引脚接地;我试图与没有上拉电阻,并具有相同的结果:LED切换频繁,没有变化,无论按钮是否按下(这也击中)我是奇怪的行为。我会发布我的代码的相关部分。任何对我可能犯的错误的看法都是伟大的。所有变量都是易失性全局变量。编辑*:WOOPS,抱歉,我没有从我的源代码复制到这里。IFS3BIT.T1IF=0;那是在ISR的底部。谢谢。
|
|
相关推荐
5个回答
|
|
在任何地方,你似乎都没有清理T1。
|
|
|
|
嗯?这是一个完全不同的位,不是引起中断的那个位。您应该在if()块内清除IFS0bit.T1IF,它测试为真。您也忽略了写AD1PCFGL以将输入引脚设置为数字模式。
|
|
|
|
再次谢谢你…还有一个发帖错误。我抄袭了错误的指令。是的,我有T1IF标志被重置。但是,我在ISR结束后的if语句之后设置它。即使定时器再次溢出,我的其他中断也需要经常检查。设置AD1PCFGL寄存器最有可能解决问题。我读了手册错误,我认为它默认设置为模拟输入。谢谢,我会改正的,让你知道事情的进展。
|
|
|
|
那么?在If()中清除它。您的其他中断仍将被服务。默认设置为模拟。如果需要的话,您的工作是将引脚转换为数字模式。
|
|
|
|
就是这样。非常感谢你的帮助。
|
|
|
|
只有小组成员才能发言,加入小组>>
5248 浏览 9 评论
2036 浏览 8 评论
1956 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3218 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2264 浏览 5 评论
787浏览 1评论
678浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
604浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
685浏览 0评论
582浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 19:47 , Processed in 1.391968 second(s), Total 84, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号