我想用已经固定的板子去用PWM点亮数码管里面的LED,可

是就是亮不起来,直接用寄存器控制可以亮,难道是我配置的PWM错了?如图
D口连接三极管的b基,也就是D口置高电平后,三极管导通,B口才能控制LED亮灭。


#include<pic.h>
__CONFIG(FOSC_INTOSC&CLKOUTEN_OFF&MCLRE_ON&WDTE_OFF);
__CONFIG(LVP_OFF);
void TIMER2_INIT();
void main()
{
TRISB=0x00;
TRISD=0x00;
PORTD = 0XFF;
TIMER2_INIT();
while(1)
{;}
}
void TIMER2_INIT()
{
CCPTMRS0 = 0xF3; //CCP2和CCP3选择Timer2作为定时器
TMR2 = 0; //装初值,比如TMR2=60,则从60*始计数。到256后重新返回60。
PR2 = 255; //PWM周期,只有用到PWM时才配置。根据时钟频率可以算出具体值,后面的占空比是根据这个时间来分的。这一点和STM32不一样。
CCP2CON = 0X3C; //通过将合适的值装入CCPxCON寄存器来配置CCP模块使之工作于PWM模式。
CCP3CON = 0X3C;
CCPR2L = 0X3F; //PWM的占空比的高8位,低2位在CCPxCON中。DCxB<1:0>
CCPR3L = 0XF3;
TMR2IF = 0; //清零中断标志位
T2CON = 0X05; //定时器分频比和使能定时器
}
[此贴子已经被作者于2018-2-3 8:51:32编辑过]