发 帖  
原厂入驻New
[问答] PWM2在模拟器中输出正常但不在芯片上怎么回事
102 PWM PIC
分享
你好。我使用MPLAB-X V3.26和XC-8来开发一个应用程序,它使用PWM2在PIC12F1571RA0上产生一个1 kHz方波。在模拟器的逻辑分析器中(每1000个1uS指令周期出现一个周期),输出结果如预期,但是RA0在编程芯片上出现死区(逻辑0)。RA0已经死了。我重新检查了电路板,以确保电源连接正常,RA0不短路到地面或板上任何其他意外的网络。我消毒了我的程序文件(附件)的版本,以将代码限制为(我认为)与PWM2和RA0相关的语句。我验证过模拟器的逻辑分析器再次表明,在调试经过净化的程序时,预期的1KHz时钟是在RA0生成的。然后我编程了一个PIC,并验证RA0没有输出时钟…没什么。我真诚地感谢你帮我弄清楚我做错了什么。非常感谢!
0
2020-5-6 07:25:40   评论 分享淘帖 邀请回答

相关问题

10个回答
这个寄存器PWM2PR=501;//设置1MMSEngt接受的PWM2周期寄存器& 8位数字?
2020-5-6 07:37:51 评论

举报

还有,请注意:您的代码来自未来*项目:PWM2测试*版本:1.0*日期:4/26/16(对不起,刚刚完成了一些Torchwood剧集…)
2020-5-6 07:57:30 评论

举报

谢谢,达里奥。你说得对!我错误地假设编译器会在PWM2的高低周期寄存器之间解析我的常数。我没有注意到编译器错误,模拟器的逻辑分析器显示出我预期的方波频率,这些事实使我怀疑我的问题出在别处。显式加载高和低周期寄存器产生的时钟,我希望看到的董事会。再次感谢您的快速更正。
2020-5-6 08:07:55 评论

举报

奇怪。PWM2PRH位于PWM2PRL上面的地址,并且PWMPR被定义为与PWM2PRL在同一地址上的“无符号短路”,因此我假设您应该进行一次写入。我很想知道程序集输出的原始表达式是如何产生的。
2020-5-6 08:26:04 评论

举报

2020-5-6 08:31:04 评论

举报

RIC,谢谢分享你的洞察力。为了回答你的问题,我的初始化PWM2PR(“PWM2PR=501;”)的原始代码(由于某种原因没有产生来自PWM2的输出信号)分解如下:MOVLW 0x1MOVLB 0x1BMOVWF PWM2PRHMOVLW 0xF5MOVWF PWM2PRI没有问题。你知道这怎么可能导致PWM2没有输出吗?再次感谢!
2020-5-6 08:49:52 评论

举报

那个代码看起来很好。你用什么代码分开加载寄存器?
2020-5-6 08:55:05 评论

举报

Ric,我在C代码中使用了以下行:PWM2PRL=0xF5;PWM2PRH=0x1;这些行分解如下:MOVLW 0xF5MOVLB 0x1BMOVWF PWM2PRMOVLW 0x1MOVWF PWM2PRHThanks,以便更仔细地查看。我很高兴它使用上面的代码工作,但是考虑到您的见解,我很困惑为什么在尝试直接加载PWM2PR时,我似乎不能用PWM2生成时钟。RA0是默认的PWM2输出引脚(我通过在APFCON中清除2SEL位来确保这一点得到了预防)。在不同的日子里,我用两个不同的范围来确认我没有时钟。有可能我搞砸了范围触发器和/或定时设置(我做了更愚蠢的事情),但我不记得在分别加载PWM2PRL和PWM2PRH之后时钟出现之前对范围进行了任何更改。
2020-5-6 09:14:35 评论

举报

唯一的功能差异是加载高字节第二,16位写首先执行。我在数据表中没有看到关于订单事宜的任何内容,但是您可以尝试交换您的订单,看看是否会破坏它。
2020-5-6 09:22:46 评论

举报

我也注意到了。我在想老的“计时器”,但在这种情况下,这不重要。让我们看看…
2020-5-6 09:38:24 评论

举报

只有小组成员才能发言,加入小组>>

113个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表