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 PIC16F15323也是这样,不知道原因
能不能先用MCC生成代码, 让PWM先工作起来,;
然后, 你再看一下反汇编...看看你的代码跟它生成的差别 哪里?
汇编看着头大,楼主加油
这才几行?
是ra5不能输出pwm不知道什么鬼,ra5,ra0,ra1内部上拉无效,这些和datasheet里面说的不一样,这是芯片设计缺陷吗?
你碰到一个芯片缺陷的概率比你买彩票中5块钱的概率还要低.....
楼主,应该是管脚的数字功能没打开。记得上电默认是模拟口。请尝试添加:
BANKSEL ANSELA
BCF ANSELA,5 这也是从MCC生成之后的代码和你的比较得来的。MCC很有用,在这里做个对比很有用。
PWM要设置ANSELA?
我就想问其他的PIN怎么不设置就有波形输出?
RA4,RA2,RA1这些都有,就是RA5没有输出。前面说的内部上拉无效的,也是换了多个芯片,15313/15323都试过,还不是同一家淘宝店买的
个人觉得应该设置为数字口。我没有芯片没法试。你可以试一下啦,如果还不行的话,再考虑其他因素
PWM是FULLON,FULLOFF和这个ANSELA有什么关系?而且发贴之前我担心会有这个奇葩问题已经试过这方法了,RA5就是没波形出现,同时其他PIN正常
听说PIC16F18344也有RA5不能正常上拉的这个问题?
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.
前面说了已经试过了这个,nothing can be detect on RA5!
把这个"_FEXTOSC_ECH" 去掉试试, 我看你代码里没有切换时钟,但是不切时钟这个fuse也可能影响RA5,先去掉试试,如果行了就是这里的问题了
把_FEXTOSC关掉之后果然有波形了,非常感谢大佬!!!
页:
[1]
2