微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > CC2541PWM输出问题

CC2541PWM输出问题

时间:10-02 整理:3721RD 点击:

源代码:void PWM_init(uint16  arr){
    RGB_Callback(&PWM_DateCBs);//函数注册
    P0DIR= BV(3)|BV(4)|BV(5);
 //设置pwm端口为外设端口,非gpio
    P0SEL= BV(3)|BV(4)|BV(5);
    PERCFG &=~(1<<6);  //定时器1在备用位置1
    PERCFG |= (3<<0); //将UART切换到备用位置2,防止占用PWM输出
    T1CTL &=0;
    T1CNTL&=0;
    T1CNTH&=0;
    T1CC0L = arr%0xFF;
    T1CC0H = arr/0xFF;
    //ch1
    T1CC1L = 200%0xFF;
    T1CC1H = 200/0xFF;
    T1CCTL1|= 0x2C; 
    //ch2
    T1CC2L = 500%0xFF;
    T1CC2H = 500/0xFF;
    T1CCTL2|= 0x2C;
    //ch3
    T1CC3L = 600%0xFF;
    T1CC3H = 600/0xFF;
    T1CCTL3|= 0x2C;
    //star tiner1
//必须设置以下两句,否则定时器不工作, 但是我们这里只用pwm, 因此可以直接用pwm的中断, 不用t1的定时器中断, 因此不用设置
    T1CCTL0|= 0x2C;            // IM = 1, CMP = Clear output on compare; Mode = Compare
    T1CTL|= 0x02;
}

波形图:

为啥会出现这样的波形?

推荐参考协议栈里的例程,sensorTag 及keyfob都有相关功能实现

CC2541PWM 相关文章:

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top