舵机、伺服电机驱动程序
1、舵机驱动程序
#include<>
//#include <>
// #include <>
#include ""
//#pragma LINK_INFO DERIVATIVE"mc9s12dg128b"
/*****定义变量******/
unsigned int a,c,d;
unsigned int AD_wValue,B; //AD转换结果
int b,i,x,e,j;
void LEDShow(int x);
/*****总线初始化*****/
void PLL_Init(void) {
REFDV=1;
SYNR=2;
while(!(CRGFLG&0x08));
CLKSEL=0x08;
}
/******AD初始化******/
/*void AD_Init() {
//ATD0CTL1=0x00;
ATD0CTL2=0xC0;//启动AD,快速清零,无等待模式,禁止外部触发,中断禁止 ATD0CTL3=0x40;//转换序列长度8
ATD0CTL4=0x85;
ATD0CTL5=0xA0;//右对齐无符号,单通道0采样
ATD0DIEN=0x00;//禁止数字量输入*/
/**读取AD转换结果**/
/*void AD_GetValue()
{
while(!ATD0STAT0_SCF); //等待转换结束
AD_wValue=ATD0DR0L;//读取结果寄存器的值
} */
/*****pwm初始化********/
void PWM_Init(void)
{
PWME_PWME1=0x00; // Disable PWM (PP1) 禁止
PWMCTL_CON01=1; //0,1级联,寄存器为通道1的 PWMCAE_CAE1=0; //通道7左对齐
T01=0; // 计时器清零
PWMPOL_PPOL1=1; // 先置高电平,DYT反
PWMPRCLK=0; //COLCKA不分频
PWMSCLA=4; //COLCK SA进行16分频
PWMDTY01=1500; // %=1500/20000 PWMPER01=20000; //周期20MS
PWMCLK_PCLK1=1; // CLOCK SA 作时钟源
PWME_PWME1=1;
}
/*舵机控制*/
void PWMDuo_Dutycycle(int d)
{
PWMDTY01=d;
PWME_PWME1=1; // Enable PWM 使能
}
void delay(long m){
while(m--);
}
/**************显示输出*******************/
const int Dtable[10] =
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; const int CSta
舵机、伺服电机驱动程序 来自淘豆网m.daumloan.com转载请标明出处.