完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
你好。我使用MPLAB-X V3.26和XC-8来开发一个应用程序,它使用PWM2在PIC12F1571RA0上产生一个1 kHz方波。在模拟器的逻辑分析器中(每1000个1uS指令周期出现一个周期),输出结果如预期,但是RA0在编程芯片上出现死区(逻辑0)。RA0已经死了。我重新检查了电路板,以确保电源连接正常,RA0不短路到地面或板上任何其他意外的网络。我消毒了我的程序文件(附件)的版本,以将代码限制为(我认为)与PWM2和RA0相关的语句。我验证过模拟器的逻辑分析器再次表明,在调试经过净化的程序时,预期的1KHz时钟是在RA0生成的。然后我编程了一个PIC,并验证RA0没有输出时钟…没什么。我真诚地感谢你帮我弄清楚我做错了什么。非常感谢!
|
|
相关推荐
10个回答
|
|
这个寄存器PWM2PR=501;//设置1MMSEngt接受的PWM2周期寄存器& 8位数字?
|
|
|
|
还有,请注意:您的代码来自未来*项目:PWM2测试*版本:1.0*日期:4/26/16(对不起,刚刚完成了一些Torchwood剧集…)
|
|
|
|
谢谢,达里奥。你说得对!我错误地假设编译器会在PWM2的高低周期寄存器之间解析我的常数。我没有注意到编译器错误,模拟器的逻辑分析器显示出我预期的方波频率,这些事实使我怀疑我的问题出在别处。显式加载高和低周期寄存器产生的时钟,我希望看到的董事会。再次感谢您的快速更正。
|
|
|
|
奇怪。PWM2PRH位于PWM2PRL上面的地址,并且PWMPR被定义为与PWM2PRL在同一地址上的“无符号短路”,因此我假设您应该进行一次写入。我很想知道程序集输出的原始表达式是如何产生的。
|
|
|
|
啊哈…有趣…哦好
|
|
|
|
RIC,谢谢分享你的洞察力。为了回答你的问题,我的初始化PWM2PR(“PWM2PR=501;”)的原始代码(由于某种原因没有产生来自PWM2的输出信号)分解如下:MOVLW 0x1MOVLB 0x1BMOVWF PWM2PRHMOVLW 0xF5MOVWF PWM2PRI没有问题。你知道这怎么可能导致PWM2没有输出吗?再次感谢!
|
|
|
|
那个代码看起来很好。你用什么代码分开加载寄存器?
|
|
|
|
Ric,我在C代码中使用了以下行:PWM2PRL=0xF5;PWM2PRH=0x1;这些行分解如下:MOVLW 0xF5MOVLB 0x1BMOVWF PWM2PRMOVLW 0x1MOVWF PWM2PRHThanks,以便更仔细地查看。我很高兴它使用上面的代码工作,但是考虑到您的见解,我很困惑为什么在尝试直接加载PWM2PR时,我似乎不能用PWM2生成时钟。RA0是默认的PWM2输出引脚(我通过在APFCON中清除2SEL位来确保这一点得到了预防)。在不同的日子里,我用两个不同的范围来确认我没有时钟。有可能我搞砸了范围触发器和/或定时设置(我做了更愚蠢的事情),但我不记得在分别加载PWM2PRL和PWM2PRH之后时钟出现之前对范围进行了任何更改。
|
|
|
|
唯一的功能差异是加载高字节第二,16位写首先执行。我在数据表中没有看到关于订单事宜的任何内容,但是您可以尝试交换您的订单,看看是否会破坏它。
|
|
|
|
我也注意到了。我在想老的“计时器”,但在这种情况下,这不重要。让我们看看…
|
|
|
|
只有小组成员才能发言,加入小组>>
5006 浏览 9 评论
1923 浏览 8 评论
1853 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3067 浏览 3 评论
请问电源和晶体值之间有什么关系吗?PIC在正常条件下运行4MHz需要多少电压?
2143 浏览 5 评论
578浏览 1评论
432浏览 1评论
PIC Kit3出现目标设备ID(00000000)与预期的设备ID(02c20000)不匹配。是什么原因
477浏览 0评论
367浏览 0评论
IPECMD命令烧录AVR128DA48芯片,报找不到芯片错误
853浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-17 14:25 , Processed in 1.236367 second(s), Total 66, Slave 60 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号