liuzaiy 发表于 2022-7-10 12:11

16F15313无PWM波形输出

本帖最后由 pzsh 于 2022-7-21 11:25 编辑

代码如下 ,不知道哪里设置的不对一直没波形输出,请大佬指点下,非常感谢!!!
#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

liuzaiy 发表于 2022-7-10 12:14

PIC16F15323也是这样,不知道原因

dingy 发表于 2022-7-10 12:17

能不能先用MCC生成代码, 让PWM先工作起来,;

zhanghqi 发表于 2022-7-10 12:21

然后, 你再看一下反汇编...看看你的代码跟它生成的差别 哪里?

wyjie 发表于 2022-7-10 12:23

汇编看着头大,楼主加油

liuzaiy 发表于 2022-7-10 12:32

这才几行?

liuzaiy 发表于 2022-7-10 12:36

是ra5不能输出pwm不知道什么鬼,ra5,ra0,ra1内部上拉无效,这些和datasheet里面说的不一样,这是芯片设计缺陷吗?

chuxh 发表于 2022-7-10 12:57

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

dingy 发表于 2022-7-10 13:01

楼主,应该是管脚的数字功能没打开。记得上电默认是模拟口。请尝试添加:
BANKSEL ANSELA
BCF ANSELA,5

dengdc 发表于 2022-7-10 13:04

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

liuzaiy 发表于 2022-7-10 13:07

PWM要设置ANSELA?

liuzaiy 发表于 2022-7-10 13:09

我就想问其他的PIN怎么不设置就有波形输出?

juventus9554 发表于 2022-7-10 13:13

RA4,RA2,RA1这些都有,就是RA5没有输出。前面说的内部上拉无效的,也是换了多个芯片,15313/15323都试过,还不是同一家淘宝店买的

liuzaiy 发表于 2022-7-10 13:15

个人觉得应该设置为数字口。我没有芯片没法试。你可以试一下啦,如果还不行的话,再考虑其他因素

liuzaiy 发表于 2022-7-10 13:18

PWM是FULLON,FULLOFF和这个ANSELA有什么关系?而且发贴之前我担心会有这个奇葩问题已经试过这方法了,RA5就是没波形出现,同时其他PIN正常

liuzaiy 发表于 2022-7-10 13:22

听说PIC16F18344也有RA5不能正常上拉的这个问题?

jiajs 发表于 2022-7-10 13:25

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.

liuzaiy 发表于 2022-7-10 13:27


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

heweibig 发表于 2022-7-10 13:38

把这个"_FEXTOSC_ECH" 去掉试试, 我看你代码里没有切换时钟,但是不切时钟这个fuse也可能影响RA5,先去掉试试,如果行了就是这里的问题了

liuzaiy 发表于 2022-7-10 13:40

把_FEXTOSC关掉之后果然有波形了,非常感谢大佬!!!
页: [1] 2
查看完整版本: 16F15313无PWM波形输出