ZigBee-CC2530单片机 - 1路硬件PWM控制舵机角度(精度为1us)

   日期:2021-02-15     浏览:155    评论:0    
核心提示:ZigBee-CC2530单片机 - 1路硬件PWM控制舵机角度(精度为1us)程序源码#include <ioCC2530.h>typedef unsigned char uchar;typedef unsigned int uint;//系统时钟初始化void SystemClockInit(){ CLKCONCMD &= ~0x40; //设置系统时钟源为32MHZ晶振 while(CLKCONSTA & 0x40); //等待

ZigBee-CC2530单片机 - 1路硬件PWM控制舵机角度(精度为1us)

程序源码

#include <ioCC2530.h>
typedef unsigned char uchar;
typedef unsigned int  uint;

//系统时钟初始化
void SystemClockInit()
{ 
    CLKCONCMD &= ~0x40;      //设置系统时钟源为32MHZ晶振
    while(CLKCONSTA & 0x40); //等待晶振稳定为32M
    CLKCONCMD &= ~0x07;      //设置系统主时钟频率为32MHZ 
}
//定时器1输出PWM
void Timer1PwmInit()
{ 
    uint value;
    CLKCONCMD |= 0x28;       //时钟速度32 MHz 定时器标记输出设置[5:3]1MHz 
    PERCFG |= 0x40;          //定时器1 的IO位置 1:备用位置2 
    P2SEL &= ~0x10;          //定时器1优先
    P2DIR |= 0xC0;           //第1优先级:定时器1通道2-3
    
    //timer1 通道2映射口P1_0
    P1DIR |= 0x01;
    P1SEL |= 0x01;          
    //设定周期
    value=19999;
    T1CC0H = value>>8;           
    T1CC0L = value; 
    // 模式选择 通道2比较模式
    T1CCTL2 = 0x1c;       
    //不分频,模计数
    T1CTL = 0x02;            
}
//定时器通道2PWM输出
void Timer1ch2PwmOut(uint value)
{ 
    value= 19999 - value;
    T1CC2H = value>>8;        
    T1CC2L = value;         
}
void main(void)
{ 
    SystemClockInit();
    Timer1PwmInit();                
    Timer1ch2PwmOut(2500-1);// P1_0 输出2.5ms的占空比
    while(1)
    { 
      
    }
}
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服