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

请教:PIC18F25K40的PWM初始化设置!无法输出PWM波形!

[复制链接]
989|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
按照数据手册的PWM设置步骤,PWM初始化函数如下:
void PWM_Init(void)
{
    CCPTMRS = 0;                //此行可注释,默认TMR2作为PWM时钟源
    RC3PPS = 0x05;              //设置CCP1/PWM1映射到引脚RC3
    TRISCbits.TRISC3 = 1;       //禁止RC3输出
    T2PR  = 31;                 //周期寄存器
    CCP1CON = 0x8C;             //使能CCP1,PWM模式
    //PIR6bits.CCP1IF = 1;
    CCPR1H = 0x04;
    CCPR1L = 0x00;              //占空比
    CCP1CON |= 0x10;
    PIR4bits.TMR2IF = 0;                //清除中断标志
    T2CLKCON = 1;               //时钟源选择:1-Fosc/4
    T2CON = 0x20;               //预分频:1/4
    T2CONbits.ON = 1;           //启动TMR2
    while( !(PIR4bits.TMR2IF) );//等待TMR2溢出
    TRISCbits.TRISC3 = 0;       //使能RC3输出
}
RC3脚,始终无法输出PWM波形!

使用特权

评论回复
沙发
北极风| | 2019-5-31 09:13 | 只看该作者
PPS脚配置的不对吧。

建议使用MCC生成初始化程序。

使用特权

评论回复
板凳
CoolSilicon| | 2019-5-31 10:12 | 只看该作者
RC3默认复用位模拟ANC3口, 看你写的代码, 明显的没有将其初始化位数字口, 肯定是不会输出数字PWM信号的.
为何不用楼上的建议, 使用MCC来生成代码呢? 比你自己写要高效, 可靠的多.

另外, K40系列有个Errata, 你采取应对措施没有?

使用特权

评论回复
地板
phosphate| | 2019-5-31 15:49 | 只看该作者
好像MCC是比较好用呢,好多人都推荐

使用特权

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

本版积分规则

10

主题

63

帖子

1

粉丝