锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

XS128单片机程序:智能小车舵机的控制

时间:2024-05-04 23:07:09

/***********************************************/
//This is our control of the steering gear(舵机)
//Next we will use it by PI control;
//Date :2013/5/15
/***********************************************/
#include /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */

/*2.************所有的延时程序**********************/
/******************N倍0.75us 延时**********
函 数:delay_us()
功 能:约0.75 us延迟
参 数:n_us
说 明:本函数的总线时钟为16 MHz
******************************************/
void delay_us(uint n_us)
{
uint loop_i;
for (loop_i=0; loop_i< n_us; loop_i++)
{;}
}
/****************************************
函 数:delay_ms()
功 能:约1 ms延迟
说 明:本函数的总线时钟为16 MHz.
*****************************************/
void delay_ms(uint n_ms)
{
uint loop_i;
for (loop_i=0; loop_i< n_ms; loop_i++)
{
delay_us(1335);
}//总线时钟为16 MHz时
} // 延迟1335×12个机器周期 1 ms
/***************************************
函 数:delay_s()
功 能:约1 s延迟
说 明:本函数的总线时钟为16MHz。
***************************************/
void delay_s(uint n_s)
{
uint loop_i;
for (loop_i=0; loop_i< n_s; loop_i++)
{ delay_ms(1000); }
}

/************************************/
//函数:PWM 波初始化程序
//功能:PWM 波初始化程序完成了电动机和舵机的控制
// 所有通道均采用级联的方式
// 0-1通道级联控制舵机
// 2-3通道级联控制前进
// 6-7通道级联控制电机后退
//说明; 舵机控制的
//时间:2013、5、15
/************************************/
void PWM_init (void) {
PWME =0x00; //禁止PWM模块
PWMCLK =0xFF; //时钟选择寄存器SA SB
PWMPRCLK =0x33; //选择时钟A预分频因子8/1000000Hz
PWMSCLA =5; //SA比例因子 2.5 /100,000Hz
PWMSCLB =250; //SB比例因子 250 /2000 Hz
PWMCTL =0xF0; //所有的都级联
PWMPOL =0xFF; //极性控制
PWMCAE =0x00; //对齐方式
PWMPER01 =2000; //周期寄存器 定时20ms
PWMPER23 =
PWMDTY01 = 0; // 设置PWM通道初始化占空比
PWME =0xFF; //使能

}
void main(void) {

PWM_init ();
while(1){
PWMDTY01=150;
delay_ms(500);
PWMDTY01=155;
delay_ms(500);
PWMDTY01=160;
delay_ms(500);
PWMDTY01=165;
delay_ms(500);
PWMDTY01=170;
delay_ms(500);
PWMDTY01=175;
delay_ms(500);
PWMDTY01=180;
delay_ms(500);
PWMDTY01=185;
delay_ms(500);
PWMDTY01=190;
delay_ms(500);
PWMDTY01=150;
delay_ms(500);
PWMDTY01=145;
delay_ms(500);
PWMDTY01=140;
delay_ms(500);
PWMDTY01=135;
delay_ms(500);
PWMDTY01=130;
delay_ms(500);
PWMDTY01=125;
delay_ms(500);
PWMDTY01=120;
delay_ms(500);
PWMDTY01=115;
delay_ms(500);
PWMDTY01=110;
delay_ms(500);
delay_ms(500);
}

}


-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章