完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
亲爱的各位,我使用编译器:XC8 1.35 MPLA:MPLAB X3.40微控制器:PIC18F24K40。我已经用MCC生成的文件测试了定时器中断代码16位timer0@16Mhz内部振荡器。在它正常工作的地方。现在我正在测试没有MCC生成文件的相同代码,20Mhz晶体,16位定时器中断。当我测试下面的代码时,如果我使用LED =,那会发生什么!LED LED将保持高,如果我使用LED = 1和LED = 0,它将正常工作。当我测试计时器帧产生1ms的非均匀波形4ms关闭取决于可调定时器值。我怀疑配置设置,我直接复制从MCC生成的文件,并改变了外部的CO。CK
|
|
相关推荐
9个回答
|
|
摆脱第二个包袱。包括XC.H已经为你做了。这说明你正在使用外部晶体。你是吗?不要启用LVP,除非你真的知道你需要它。这应该是寻址PORTC而不是LATC,并且忘记初始化ANSELC的组合,保证LED=!莱德尔会失败,因为PIN总是读得很低。
|
|
|
|
是的,我使用的是外部振荡器20MHz。请让我知道外部振荡器的基本配置设置。我使用PIC16F86,因为它使用PLL位,它直接向前。这个函数与MCC生成的文件一起工作。
|
|
|
|
你应该使用“EC”模式,而不是“HS”模式。阅读我的整个答案。这不是最好的方法,但如果你也写信给ANSELC,把引脚切换到数字模式,你会成功的。你应该同时做这两件事,地址是LATC,然后切换到数字模式。
|
|
|
|
以下是否设置为在外部频率下运行的OK?
|
|
|
|
根据我的建议,我做了如下修改。这里LED保持高电平。使用前面的代码,我可以在没有定时器中断的情况下闪烁LED。如果需要更改其他配置,请告诉我
|
|
|
|
从中断服务例程中删除对.()的调用。该函数包含巨大的延迟,因此您永远不会退出中断服务。
|
|
|
|
我尝试简单的LED闪烁在主回路,以确保其工作。LED仍然很高
|
|
|
|
阅读Qub所说的ISR中的反()函数。计数器()至少需要650毫秒,但是您的Time0在100毫秒中到期。换句话说,TMR0IF是在ISR完成之前设置的。因此,当它从ISR返回时,它将一次又一次地分支回ISR。这意味着LED闪烁的同时(1)将永远不会执行,即LED保持高。
|
|
|
|
感谢支持最终代码工作在初始化过程中很少改变。我已经从MCC生成的文件采取PIN初始化。并定义了函数LATC7,但要花很长时间才能启动控制器。
|
|
|
|
只有小组成员才能发言,加入小组>>
5183 浏览 9 评论
2005 浏览 8 评论
1932 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3178 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2229 浏览 5 评论
739浏览 1评论
626浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
510浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
637浏览 0评论
535浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 01:05 , Processed in 2.776889 second(s), Total 93, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号