打印
[PIC®/AVR®/dsPIC®产品]

16F15313无PWM波形输出

[复制链接]
1446|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
meeagle|  楼主 | 2019-9-7 22:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下 ,不知道哪里设置的不对一直没波形输出,请大佬指点下,非常感谢!!!
#include "p16f15313.inc"
__CONFIG _CONFIG1, _FEXTOSC_ECH & _RSTOSC_HFINT1 & _CLKOUTEN_OFF & _CSWEN_ON & _FCMEN_OFF
__CONFIG _CONFIG2, _MCLRE_OFF & _PWRTE_OFF & _LPBOREN_OFF & _BOREN_OFF & _BORV_LO & _ZCD_OFF & _PPS1WAY_OFF & _STVREN_OFF
__CONFIG _CONFIG3, _WDTCPS_WDTCPS_31 & _WDTE_OFF & _WDTCWS_WDTCWS_7 & _WDTCCS_SC
__CONFIG _CONFIG4, _BBSIZE_BB512 & _BBEN_OFF & _SAFEN_OFF & _WRTAPP_OFF & _WRTB_OFF & _WRTC_OFF & _WRTSAF_OFF & _LVP_ON
__CONFIG _CONFIG5, _CP_OFF
   
    ORG    0x0000           
    GOTO    START      

START
        BANKSEL RA5PPS
        MOVLW 09H
        MOVWF RA5PPS
        BANKSEL T2CON
        MOVLW 01H
        MOVWF T2CLKCON
        MOVLW 20H
        MOVWF PR2
        BANKSEL CCPR1L
        MOVLW 10H
        MOVWF CCPR1H
        MOVLW 0C0H
        MOVWF CCPR1L
        MOVLW 9FH
        MOVWF CCP1CON
        BANKSEL TRISA
        BCF TRISA,5
        BANKSEL T2CON
        BSF T2CON,T2ON
        GOTO $+0
    END

使用特权

评论回复
沙发
meeagle|  楼主 | 2019-9-8 10:26 | 只看该作者
PIC16F15323也是这样,不知道原因

使用特权

评论回复
板凳
CoolSilicon| | 2019-9-9 10:35 | 只看该作者
meeagle 发表于 2019-9-8 10:26
PIC16F15323也是这样,不知道原因

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

使用特权

评论回复
地板
奔波儿熊| | 2019-9-9 11:28 | 只看该作者
汇编看着头大,楼主加油

使用特权

评论回复
5
meeagle|  楼主 | 2019-9-9 12:23 | 只看该作者
这才几行?

使用特权

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

使用特权

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

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

使用特权

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

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

使用特权

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

使用特权

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

使用特权

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

使用特权

评论回复
12
meeagle|  楼主 | 2019-9-9 23:03 | 只看该作者
听说PIC16F18344也有RA5不能正常上拉的这个问题?
我在其他论坛找资料的时候发现别人发贴说的

使用特权

评论回复
13
CoolSilicon| | 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.

使用特权

评论回复
14
meeagle|  楼主 | 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!

使用特权

评论回复
15
奔波儿熊| | 2019-9-10 11:46 | 只看该作者
把这个"_FEXTOSC_ECH" 去掉试试, 我看你代码里没有切换时钟,但是不切时钟这个fuse也可能影响RA5,先去掉试试,如果行了就是这里的问题了

使用特权

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

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

使用特权

评论回复
17
韦广远| | 2019-9-10 12:38 | 只看该作者
好久没有看见汇编了

使用特权

评论回复
18
奔波儿熊| | 2019-9-10 13:44 | 只看该作者
meeagle 发表于 2019-9-10 12:31
把_FEXTOSC关掉之后果然有波形了,非常感谢大佬!!!

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

使用特权

评论回复
19
meeagle|  楼主 | 2019-9-10 18:58 | 只看该作者
这个RA5困扰我好多天了之前都想放弃了的

使用特权

评论回复
20
cdyyabc| | 2019-9-11 12:02 | 只看该作者
学一下C语言编程,再学习一下最新的开发工具。磨刀不误砍柴功的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

149

帖子

1

粉丝