打印
[技术问答]

Mini51 PWM 无输出问题? 求助

[复制链接]
456|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
elephant00|  楼主 | 2021-1-6 11:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//------------------------------------------------------------------------------
#define SetBit(VAR,Place)         ( VAR |= (1<< Place) )
#define ClrBit(VAR,Place)         ( VAR &= ((1<< Place)^0xffffFFFF) )
#define ChgBit(VAR,Place)         ( VAR ^= (1<< Place) )         //取反
#define AffBit(VAR,Place,Value)   ((Value) ? \
                                   (VAR |= (1<< Place)) : \
                                   (VAR &= ((1<< Place)^0xffffFFFF)))
#define MskBit(Dest,Msk,Src)      ( Dest = (Msk & Src) | ((~Msk) & Dest) )
#define ValBit(VAR,Place)         ((VAR>> Place) & 1 )
#define ClrBits(Var,Lstart,n)      {unsigned char i=n,Place=Lstart;while(i--){ClrBit(Var,Place); Place++;}}
#define LoadBits(Var,Lstart,n,val) {unsigned long j=((unsigned long)1<<n)-1;j&=val;j<<=Lstart;ClrBits(Var,Lstart,n);Var|=j;}
#define GetBits(Var,Lstart,n)      ( (Var>>Lstart)& (((unsigned long)1<<n)-1) )
//----------------------------------------------------------------------------------------------------------------------------



void PwmInit( void )
{
         LoadBits( CLK->APBCLK, 20, 3, 7);  //  pwm clock
         LoadBits( CLK->CLKSEL1,28, 2, 2 ); //  pwm 01
         LoadBits( CLK->CLKSEL1,30, 2, 2 ); //  pwm 23
         LoadBits( CLK->CLKSEL2, 4, 2, 2 ); //  pwm 45
         //--------io--------------------------------------------
         LoadBits( GCR-> P2_MFP,12 ,3, 7 );   // 2.4, 2.5, 2.6
         LoadBits( GCR-> P2_MFP,4  ,3, 0 );   // 0
         LoadBits( GCR-> P0_MFP,12 ,1, 1 );   // 0.4
         LoadBits( GCR-> P0_MFP,4  ,1, 1 );   // 0
         
         PWM-> POE =0x3C; // EN OUT 2 3 4 5
         //-------------------------------------------------------
         PWM->CSR = 0x333333;  // 时钟选择寄存器(CSR) /16
         PWM-> PPR = 91 |((u32)91<<8)|((u32)91<<16);  //15K
        
         PWM->CNR2 = 10;
         PWM->CMR2 = 8;
         PWM->CNR3 = 10;
         PWM->CMR3 = 8;
         PWM->CNR4 = 10;
         PWM->CMR4 = 8;
         PWM->CNR5 = 10;
         PWM->CMR5 = 8;
        
         PWM-> PCR  = 0x888888;
         PWM-> PCR  |=0x111111;
}


想得到 四路PWM 输出,PWM2 PWM3  PWM4 PWM5 ,但现在引脚上没有反应,一直是高电平。 请高手看看,哪儿没有设置好?
//  以上的 位操作: 置位,复位,置多个位等 ,是OK的  没有问题,问题 可能是还有哪个寄存器没有设置。

使用特权

评论回复
沙发
jasontu| | 2021-1-7 08:52 | 只看该作者
看下gpio切到pwm功能脚位,及pwm的clock是不是有给对

使用特权

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

本版积分规则

968

主题

2969

帖子

7

粉丝