[8/16位单片机] 16F15313无PWM波形输出

[复制链接]
628|22
 楼主 | 2019-9-7 22:38 | 显示全部楼层 |阅读模式
代码如下 ,不知道哪里设置的不对一直没波形输出,请大佬指点下,非常感谢!!!
  1. #include "p16f15313.inc"
  2. __CONFIG _CONFIG1, _FEXTOSC_ECH & _RSTOSC_HFINT1 & _CLKOUTEN_OFF & _CSWEN_ON & _FCMEN_OFF
  3. __CONFIG _CONFIG2, _MCLRE_OFF & _PWRTE_OFF & _LPBOREN_OFF & _BOREN_OFF & _BORV_LO & _ZCD_OFF & _PPS1WAY_OFF & _STVREN_OFF
  4. __CONFIG _CONFIG3, _WDTCPS_WDTCPS_31 & _WDTE_OFF & _WDTCWS_WDTCWS_7 & _WDTCCS_SC
  5. __CONFIG _CONFIG4, _BBSIZE_BB512 & _BBEN_OFF & _SAFEN_OFF & _WRTAPP_OFF & _WRTB_OFF & _WRTC_OFF & _WRTSAF_OFF & _LVP_ON
  6. __CONFIG _CONFIG5, _CP_OFF
  7.    
  8.     ORG    0x0000           
  9.     GOTO    START      

  10. START
  11.         BANKSEL RA5PPS
  12.         MOVLW 09H
  13.         MOVWF RA5PPS
  14.         BANKSEL T2CON
  15.         MOVLW 01H
  16.         MOVWF T2CLKCON
  17.         MOVLW 20H
  18.         MOVWF PR2
  19.         BANKSEL CCPR1L
  20.         MOVLW 10H
  21.         MOVWF CCPR1H
  22.         MOVLW 0C0H
  23.         MOVWF CCPR1L
  24.         MOVLW 9FH
  25.         MOVWF CCP1CON
  26.         BANKSEL TRISA
  27.         BCF TRISA,5
  28.         BANKSEL T2CON
  29.         BSF T2CON,T2ON
  30.         GOTO $+0
  31.     END
复制代码

使用特权

评论回复
 楼主 | 2019-9-8 10:26 | 显示全部楼层
PIC16F15323也是这样,不知道原因

使用特权

评论回复
| 2019-9-9 10:35 | 显示全部楼层
meeagle 发表于 2019-9-8 10:26
PIC16F15323也是这样,不知道原因

能不能先用MCC生成代码, 让PWM先工作起来,;
然后, 你再看一下反汇编...看看你的代码跟它生成的差别 哪里?

使用特权

评论回复
| 2019-9-9 11:28 | 显示全部楼层
汇编看着头大,楼主加油

使用特权

评论回复
 楼主 | 2019-9-9 12:23 | 显示全部楼层
这才几行?

使用特权

评论回复
 楼主 | 2019-9-9 12:28 | 显示全部楼层
是ra5不能输出pwm不知道什么鬼,ra5,ra0,ra1内部上拉无效,这些和datasheet里面说的不一样,这是芯片设计缺陷吗?

使用特权

评论回复
| 2019-9-9 15:00 | 显示全部楼层
meeagle 发表于 2019-9-9 12:28
是ra5不能输出pwm不知道什么鬼,ra5,ra0,ra1内部上拉无效,这些和datasheet里面说的不一样,这是芯片设计缺 ...

你碰到一个芯片缺陷的概率比你买彩票中5块钱的概率还要低.....

使用特权

评论回复
| 2019-9-9 15:07 | 显示全部楼层
楼主,应该是管脚的数字功能没打开。记得上电默认是模拟口。请尝试添加:
BANKSEL ANSELA
BCF ANSELA,5

这也是从MCC生成之后的代码和你的比较得来的。MCC很有用,在这里做个对比很有用。

使用特权

评论回复
 楼主 | 2019-9-9 15:37 | 显示全部楼层
PWM要设置ANSELA?我就想问其他的PIN怎么不设置就有波形输出?RA4,RA2,RA1这些都有,就是RA5没有输出。前面说的内部上拉无效的,也是换了多个芯片,15313/15323都试过,还不是同一家淘宝店买的

使用特权

评论回复
| 2019-9-9 15:53 | 显示全部楼层
个人觉得应该设置为数字口。我没有芯片没法试。你可以试一下啦,如果还不行的话,再考虑其他因素

使用特权

评论回复
 楼主 | 2019-9-9 17:03 | 显示全部楼层
PWM是FULLON,FULLOFF和这个ANSELA有什么关系?而且发贴之前我担心会有这个奇葩问题已经试过这方法了,RA5就是没波形出现,同时其他PIN正常

使用特权

评论回复
 楼主 | 2019-9-9 23:03 | 显示全部楼层
听说PIC16F18344也有RA5不能正常上拉的这个问题?
我在其他论坛找资料的时候发现别人发贴说的

使用特权

评论回复
| 2019-9-10 10:32 | 显示全部楼层
Note: The ANSELA bits default to the Analog
mode after Reset. To use any pins as
digital general purpose or peripheral
inputs, the corresponding ANSEL bits
must be initialized to ‘0’ by user software.

使用特权

评论回复
 楼主 | 2019-9-10 11:45 | 显示全部楼层
CoolSilicon 发表于 2019-9-10 10:32
Note: The ANSELA bits default to the Analog
mode after Reset. To use any pins as
digital general pur ...

前面说了已经试过了这个,nothing can be detect on RA5!

使用特权

评论回复
| 2019-9-10 11:46 | 显示全部楼层
把这个"_FEXTOSC_ECH" 去掉试试, 我看你代码里没有切换时钟,但是不切时钟这个fuse也可能影响RA5,先去掉试试,如果行了就是这里的问题了

使用特权

评论回复
 楼主 | 2019-9-10 12:31 | 显示全部楼层
奔波儿熊 发表于 2019-9-10 11:46
把这个"_FEXTOSC_ECH" 去掉试试, 我看你代码里没有切换时钟,但是不切时钟这个fuse也可能影响RA5,先去掉试试 ...

把_FEXTOSC关掉之后果然有波形了,非常感谢大佬!!!

使用特权

评论回复
| 2019-9-10 12:38 | 显示全部楼层
好久没有看见汇编了

使用特权

评论回复
| 2019-9-10 13:44 | 显示全部楼层
meeagle 发表于 2019-9-10 12:31
把_FEXTOSC关掉之后果然有波形了,非常感谢大佬!!!

不是大佬,我也只是猜测,这样就确认是这个问题了

使用特权

评论回复
 楼主 | 2019-9-10 18:58 | 显示全部楼层
这个RA5困扰我好多天了之前都想放弃了的

使用特权

评论回复
| 2019-9-11 12:02 | 显示全部楼层
学一下C语言编程,再学习一下最新的开发工具。磨刀不误砍柴功的

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表