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

请问为啥输出不了pwm波

[复制链接]
2194|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
戌首齋|  楼主 | 2017-10-19 17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小白一枚,想使用16F1459输出一个占空比50%的pwm,但就是不行。代码如下,请教各位大佬
#include <PIC16F1459.h>
void pwminit()
{
    TRISCbits.TRISC5=1;
    PWM1CON=0;
    PWM1DCH=0;
    PWM1DCL=0;
    PIR1=0;
    T2CON=0x04;
    PWM1CON=0xe0;
    PIR1=02;
    TRISCbits.TRISC5=0;
    PWM1CON=0xe0;
}
void pwm()
{
    PIR2=0xff;
    PWM1DCH=0x40;
    PWM1DCL=0x00;
}
void main()
{
    pwminit();
    while(1)
    {
        pwm();
    }
}
沙发
xyz549040622| | 2017-10-19 19:59 | 只看该作者
官方有例程的吧,按照例程来。找个例程参考看看就好了。

使用特权

评论回复
板凳
渔夫的烟斗| | 2017-10-20 09:11 | 只看该作者
while(1)
    {
        pwm();
    }
PWM();是不是应写在WHILE()外?

使用特权

评论回复
地板
hopewise| | 2017-10-20 12:00 | 只看该作者
INTE = 0;         //禁止INT外部中断
          IOCIE = 0;        //禁止电平变化中断
      OPTION_REG =0X02; //将预分频器分配给Timer0(8分频),内部指令周期时钟
      TMR0=6;
      OSCCON = 0XF0;    //开PLL,系统工作频率为32MHZ
          TMR0IE = 1;       //Timer0溢出中断允许
          TMR0IF = 0;       //Timer0溢出中断标志清零
          GIE = 1;          //全局中断允许*/

      TRISB|=1<<2;      //将PWM输出(P1B)配置为输入
      TRISC|=1<<2;      //将PWM输出(P1A)配置为输入
      TRISB|=1<<1;      //将PWM输出(P1C)配置为输入
      TRISB|=1<<4;      //将PWM输出(P1D)配置为输入

      PSTR1CON =0X1F;    //P1B引脚的PWM波形极性受CCP1M<1:0>控制
      CCPTMRS0=0x00;     //选择Timer2作为周期定时器
      PR2=199;           //设置PWM周期=100us,即10K
      CCP1CON=0x0C;      //单输出PWM模式
      //CCPR1L=0x00;       //装载 CCPR1L寄存器的8个最高有效位(0.25dutycycle)
      CCPR1L=0xC8;
      //CCP1CON|=1<<4;   //装载CCP1CON寄存器DC<1:0>位的低两位
      //CCP1CON|=1<<5;   //注:这两位是PWM占空比的低2位,高8位在CCPRxL中
      CCP1CON&=~(1<<4);  //装载CCP1CON寄存器DC<1:0>位的低两位
      CCP1CON&=~(1<<5);; //注:这两位是PWM占空比的低2位,高8位在CCPRxL中
      
      //PWM1CON =0X80    //半桥输出模式,将相应的值装入PWM1CON寄存器的P1DC<6:0>位设置死区延时
      T2CON=0x05;        //TMR2预分频值=1:4,启动Timer2
      TRISB&=~(1<<2);   //将PWM输出(P1B)配置为输出
      TRISC&=~(1<<2);   //将PWM输出(P1A)配置为输出
      TRISB&=~(1<<1);   //将PWM输出(P1C)配置为输出
      TRISB&=~(1<<4);   //将PWM输出(P1D)配置为输出

      //PWM1CON|=1<<7;   //使用关断自动重启

使用特权

评论回复
5
hopewise| | 2017-10-20 12:00 | 只看该作者
我用的是PIC16F1938

使用特权

评论回复
6
wym3515400| | 2017-10-20 16:27 | 只看该作者
楼主能不能配上注释啊

使用特权

评论回复
7
mcumail| | 2017-10-25 07:51 | 只看该作者
我以前用pic18系列弄过,记得当时是因为配置字没设置对导致不能正常输出的。

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝