飞思科尔光电组程序文档格式.docx
- 文档编号:8427569
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:11
- 大小:16.83KB
飞思科尔光电组程序文档格式.docx
《飞思科尔光电组程序文档格式.docx》由会员分享,可在线阅读,更多相关《飞思科尔光电组程序文档格式.docx(11页珍藏版)》请在冰点文库上搜索。
shortspeed[3]={0,0,0};
//速度检测函数
shortpulse_count=0;
//编码器脉冲计数值
shortspeed_expect=0;
//理想速度
shortkp=2;
//比例环节
shortki=0;
//积分环节
shortkd=1;
//微分环节
shortek1=0;
//误差1
shortek2=0;
//误差2
shortek3=0;
//误差3
shortspeed_add=0;
//速度增量
//=======================================================================================
voidPLL_Init()//时钟初始化
{
REFDV=0x81;
/*PLLCLK=2*OSCCLK*(SYNR+1)/(REFDV+1)*/
SYNR=2;
/*锁相环时钟=2*16*(2+1)/(1+1)=48MHZ*/
while(!
(CRGFLG&
0x08));
/*总线时钟=48/2=24MHZ*/
CLKSEL=0x80;
}
voidPWM_Init()//PWM初始化
{
PWME=0x00;
//关闭PWM使能
PWMPRCLK=0x66;
//A,B时钟均为总线的64分频,375KHZ
//PWMSCLA=0x01;
//clockSA=clockA/(2*PWMSCLA)=1500KHZ
//PWMSCLB=0X01;
//clockSB=clockB/(2*PWMSCLB)=1500KHZ
PWMCLK=0x00;
PWMPOL=0xFF;
//PWM输出起始电平为高电平
PWMCAE=0x00;
//输出左对齐
PWMCTL=0xf0;
//通道01,23,45,67级联
PWMPER01=5999;
//舵机频率为62.5Hz
PWMDTY01=647;
//占空比a=(PWMDTY01+1)/(PWMPER01+1)
PWMPER23=1000;
//PWM通道3周期为375HZ
PWMDTY23=0;
//占空比a=(PWMDTY01+1)/(PWMPER01+1)占空比50%~~150
PWMPER45=1000;
//PWM通道5周期为0.10ms10KZH300=0.00010/(1/3000000)
PWMDTY45=300;
//占空比a=(PWMDTY01+1)/(PWMPER01+1)
PWMPER67=375;
//频率为1000Hz
PWMDTY67=200;
//
PWME=0xff;
//使能pwm
}
voidPit0_Init()//PIT初始化
PITCFLMT_PITE=0;
//关PIT使能
PITCE_PCE0=1;
//通道0使能
PITMUX_PMUX0=0;
//通道0接微时钟0
PITMTLD0=99;
//微时钟0值设置为7f
PITLD0=3839;
//time-outperiod=(PITMTLD+1)*(PITLD+1)/fBUS.
//时间计算100*3840/24000000=0.016s
PITINTE_PINTE0=1;
//通道0中断时能
PITCFLMT_PITE=1;
//PIT使能
voidECT_Init()
TIOS=0x00;
/*OC0路为输出比较,OC1路为输入捕捉*/
TSCR2=0x06;
/*定时器溢出中断禁止,计数器自由运行禁止复位,64分频*/
TSCR1=0x80;
/*定时器使能*/
TIE=0x01;
/*输出比较相应中断使能*/
TCTL4=0x01;
voiddly_1ms()
inti,j;
for(i=0;
i<
200;
i++)
{
for(j=0;
j<
1000;
j++){;
}
voidsam_position()//车位检测函数
inti=0,j=0;
unsignedcharm=0,n=0;
n=PORTA;
for(i;
10;
{
m=PORTA;
if(n==m)
j++;
if(j>
6)
light=n;
voidcheck_start()//检测起始线
if((light&
&
4)||(light&
16))
start_flag++;
voidcheck_start()
voidturning()//舵机转向函数
switch(light)
case1:
if(turn_value==direction_turn[1])//出界判断算法
turn_value=direction_turn[0];
speed_expect=speed_set[0];
elseif(turn_value==direction_turn[0])
break;
case2:
if(turn_value==direction_turn[0])
turn_value=direction_turn[1];
speed_expect=speed_set[1];
}
elseif(turn_value==direction_turn[1])
elseif(turn_value==direction_turn[2])
case4:
if(turn_value==direction_turn[1])
turn_value=direction_turn[2];
speed_expect=speed_set[2];
elseif(turn_value==direction_turn[3])
case8:
if(turn_value==direction_turn[2])
turn_value=direction_turn[3];
speed_expect=speed_set[3];
elseif(turn_value==direction_turn[4])
case16:
if(turn_value==direction_turn[3])
turn_value=direction_turn[4];
speed_expect=speed_set[4];
elseif(turn_value==direction_turn[5])
case32:
if(turn_value==direction_turn[4])
turn_value=direction_turn[5];
speed_expect=speed_set[5];
elseif(turn_value==direction_turn[6])
case64:
if(turn_value==direction_turn[5])//出界判断算法
turn_value=direction_turn[6];
speed_expect=speed_set[6];
default:
break;
PWMDTY01=turn_value;
voidcheck_speed()//速度检测函数
ek3=ek2;
//计算速度差值
ek2=ek1;
ek1=speed_expect-pulse_count;
speed[2]=speed[1];
//当前速度放在[0],之前放在[1],[2]
speed[1]=speed[0];
speed[0]=pulse_count;
pulse_count=0;
voidspeed_down()//制动函数
PWMDTY23=300;
//电机反向供电
PWMDTY45=0;
voidspeed_pid()//PID算法
speed_add=kp*(ek1-ek2)+ki*ek1+kd*(ek1-2*ek2+ek3);
//PID增量式
voiddriver()//驱动电机控制函数
//if(((turn_value>
705)||(turn_value<
560))&
(speed[0]>
200))//当前速度若远超给定速度
//{
//speed_down();
//}
//else
//{
speed_pid();
PWMDTY45=PWMDTY45+speed_add;
//}
if(PWMDTY45>
600)
PWMDTY45=600;
voidmain()
DisableInterrupts;
/*关中断*/
PLL_Init();
PWM_Init();
Pit0_Init();
ECT_Init();
DDRA=0x00;
DDRB=0xFF;
PORTB=0X00;
EnableInterrupts;
for(;
;
)
//sam_position();
//turning();
#pragmaCODE_SEGNON_BANKED
voidinterrupt8Timer0_ISR(void)
pulse_count++;
TFLG1_C0F=1;
/*TC0端有中断产生*/
voidinterrupt66PIT0_ISR(void)
sam_position();
//车位检测函数
turning();
//舵机转向函数
check_speed();
driver();
//驱动电机控制函数
PITTF_PTF0=1;
/*PIT0端有中断产生,清除标志位*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 思科 光电 程序