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

无法输出PWM波形

[复制链接]
533|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
houcs|  楼主 | 2022-4-17 22:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pzsh 于 2022-4-20 08:58 编辑

PIC18F25K40的PWM初始化设置

使用特权

评论回复
沙发
huangchui| | 2022-4-17 22:59 | 只看该作者
楼主详细说说怎么回事啊,这么说太笼统了

使用特权

评论回复
板凳
houcs|  楼主 | 2022-4-17 23:01 | 只看该作者
按照数据手册的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波形!

使用特权

评论回复
地板
juventus9554| | 2022-4-17 23:03 | 只看该作者
PPS脚配置的不对吧。

使用特权

评论回复
5
dingy| | 2022-4-17 23:05 | 只看该作者
建议使用MCC生成初始化程序。

使用特权

评论回复
6
dengdc| | 2022-4-17 23:08 | 只看该作者
RC3默认复用位模拟ANC3口, 看你写的代码, 明显的没有将其初始化位数字口

使用特权

评论回复
7
chuxh| | 2022-4-17 23:11 | 只看该作者
肯定是不会输出数字PWM信号的

使用特权

评论回复
8
songqian17| | 2022-4-17 23:15 | 只看该作者
为何不用上面同学的建议, 使用MCC来生成代码呢?

使用特权

评论回复
9
juventus9554| | 2022-4-17 23:18 | 只看该作者
比你自己写要高效, 可靠的多.

使用特权

评论回复
10
dengdc| | 2022-4-17 23:21 | 只看该作者

使用特权

评论回复
11
wyjie| | 2022-4-17 23:24 | 只看该作者
好像MCC是比较好用呢,好多人都推荐

使用特权

评论回复
12
houcs|  楼主 | 2022-4-17 23:26 | 只看该作者
嗯,我再好好缕一缕吧,有了好消息及时通知大家

使用特权

评论回复
13
asdsfgwsafd| | 2022-4-18 08:01 | 只看该作者
一般是用MCC,你这个是不是总中断没开?

使用特权

评论回复
14
pzsh| | 2022-4-20 08:57 | 只看该作者
同意楼上各位的建议,使用MCCC配置的例子代码看看

使用特权

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

本版积分规则

743

主题

8382

帖子

5

粉丝