Microchip
直播中

杨春林

7年用户 914经验值
私信 关注
[问答]

pic16f628a中的pwm与端口无法正常工作该怎么办?

定义XTAL_FREQ 20MHZ/*MHz*//包括包括包括和包括图片16f628a16f628a.h>,包括包括包括和包括xc.h>\\\x1616161616f16f628a.16f628a.h.h>>\\包括包括包括包括“延迟.h”,包括“延迟.h“\\xxxc.xc.xc.xc.h”\\\**********b**********************************************************************************************************************//CON.#pragma config FOSC=HS//振荡器选择位(HS振荡器:RA6/OSC2/CLKOUT和RA7/OSC1/CLKIN上的高速晶体/谐振器)#pragma配置WDTE=OFF//看门狗定时器启用位(WDT禁用)#pragma配置PWRTE=OFF//上电定时器启用位(PWRT禁用)#pragma配置MCLRE=ON//RA5/MCLR/VPP引脚功能选择位(RA5/MCLR/VPP引脚功能是MCLR)#pragma配置BOREN=OFF//褐色检测启用位(BOD禁用)#pragma配置LVP=OFF//低伏ge编程使能位(RB4/PGM管脚具有数字I/O功能,MCLR上的HV必须用于编程)#pragma配置CPD=OFF//Data EE存储器代码保护位(数据存储器代码保护关闭)#pragma配置CP=OFF//Flash程序存储器代码保护位(代码保护关闭)无效系统em_init(void){TRISA=0X00;PORTA=0X00;CMCON=0X00;CMCON=0X07;TRISB=0b00000000011;TRISB=0b00000000000011;PORTB=0b00000000000011;PORTB=0b00000000000011;CCP1CON=0b00000000000000000011;CCP1CON=00000000000000111;CCP1CON=00000000000111;CCP1CON=0000101101101101101101101101101101101101101101101101101101101101;//PWM周期:20uSec(50kHz 50kHz)202020uSec(50kHz 50kHz)T2CON(50kHz)202020l2=1;led_r1=1;led_r2=1;而(1){dim_level=249;DelayMs(100);dim_level=50;DelayMs(100);}}这是我的代码……我想切换LED,也想控制PWM……但是当我在硬件中执行此代码时,意味着PWM工作正常,但是PORTA管脚不工作……它不切换到任何条件……

回帖(19)

王焕树

2019-10-31 08:33:28
您已经达到了臭名昭著的RMW(读-修改-写)效果。移到更新的PIC(PIC16F1xx)将完全避免这个问题。尝试在每条指令改变PORTA引脚之前插入NOP。
举报

邹先莹

2019-10-31 08:42:10
LedioL1=1;nop-();LedioL2=1;nop-();LedioR1=1;nop-();LedioR2=1;nop-();
举报

王焕树

2019-10-31 08:47:17
为了让自己相信LED是好的,尝试更换,也改变:只是:
举报

周玲玲

2019-10-31 08:58:38
可以添加更多的NOP();s以适当地放电内部电容器。led_l1=1;NOP();NOP();NOP();NOP();NOP();led_l2=1;NOP();NOP();NOP();NOP();NOP();led_r1=1;NOP();NOP();NOP();led_r2=1;NOP();NOP();NOP();
举报

更多回帖

发帖
×
20
完善资料,
赚取积分