光电能跑的程序.docx
- 文档编号:481978
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:14
- 大小:15.61KB
光电能跑的程序.docx
《光电能跑的程序.docx》由会员分享,可在线阅读,更多相关《光电能跑的程序.docx(14页珍藏版)》请在冰点文库上搜索。
光电能跑的程序
#include
#include
#pragmaLINK_INFODERIVATIVE"mc9s12dg128b"
unsignedintkp=90;
signedintc;
unsignedinta[11],a1[11],e[11];
unsignedinti,k,j=0;
signedintb[21];
signedintb1[21];
signedintb2[21];
voidSetBusCLK_16M(void)
{
REFDV=1;
SYNR=1;
while(!
(CRGFLG_LOCK==1));
CLKSEL_PLLSEL=1;
}
voidad(void){
ATD0CTL2=0XC0;//启动ATD0转换,快速清零,没有中断,不受外部触发控制
ATD0CTL3=0X04;//转换序列长度为8,FIFO为1,无冻结模式
ATD0CTL4=0XE3;//16个AD周期,8分频,AD平率为4MHZ
ATD0CTL5=0X30;//从通道0开始的通道开始进行8次转换,左对齐方式存储结果
ATD0DIEN=0X00;//禁止数字量输入
ATD1CTL2=0XC0;//启动ATD1转换,快速清零,没有中断,不受外部触发控制
ATD1CTL3=0X04;//转换序列长度为1,FIFO为0,无冻结模式
ATD1CTL4=0XE3;//16个AD周期,8分频,AD平率为4MHZ
ATD1CTL5=0X30;//单通道多次转换,AN0通道,左对齐方式存储结果
ATD1DIEN=0X00;//禁止数字量输入
}
voidpwm(void){
PWMPRCLK=0X00;//B,A都不分频,都为总线频率16MHZ
PWMSCLA=0X08;//对clocka16分频,clocksa频率是1Mhz
PWMCLK_PCLK1=1;//选择clocksa为PWM时钟源
PWMPOL_PPOL1=1;//先输出高电平
PWMCAE_CAE0=0;//输出为左对齐方式
PWMCTL_CON01=1;//01通道级联
PWMCNT01=0;//计数器清零
PWMPER01=1000;
PWMDTY01=720;
PWME_PWME1=1;
PWMCLK_PCLK5=1;//选择clocksa为PWM时钟源
PWMPOL_PPOL5=1;//先输出高电平
PWMCAE_CAE5=0;//输出为左对齐方式
PWMCTL_CON45=1;//01通道级联
PWMCNT45=0;//计数器清零
PWMPER45=20000;
PWMDTY45=1680;
PWME_PWME5=1;
}
voidpb(void){
signedintp1=0;
if((b[0]==0)&&(b[1]==0)&&(b[2]==0)&&(b[3]==0)&&(b[4]==0)&&(b[5]==0)&&(b[6]==0)&&(b[7]==0)&&(b[8]==0)&&(b[9]==0)&&(b[10]==0)&&(b[11]==0)&&(b[12]==0)&&(b[13]==0)&&(b[14]==0)&&(b[15]==0)&&(b[16]==0)&&(b[17]==0)&&(b[18]==0)&&(b[19]==0)&&(b[20]==0)){
c=0;
}else{
for(j=0;j<21;j++){
if(b[j]!
=0){
c=b[j];
}
}
}
p1=kp*c;
p1=1680+p1;
if(p1<1080)
p1=1080;
elseif(p1>2280)
p1=2280;
PWMDTY45=p1;
}
voidmain(void){
SetBusCLK_16M();
pwm();
ad();
for(i=0;i<1000;i++){
while(ATD0STAT1_CCF0==0);
a1[0]=ATD0DR0H;
while(ATD0STAT1_CCF1==0);
a1[1]=ATD0DR1H;
while(ATD0STAT1_CCF2==0);
a1[2]=ATD0DR2H;
while(ATD0STAT1_CCF3==0);
a1[3]=ATD0DR3H;
while(ATD0STAT1_CCF4==0);
a1[4]=ATD0DR4H;
while(ATD0STAT1_CCF5==0);
a1[5]=ATD0DR5H;
while(ATD0STAT1_CCF6==0);
a1[6]=ATD0DR6H;
while(ATD0STAT1_CCF7==0);
a1[7]=ATD0DR7H;
while(ATD1STAT1_CCF0==0);
a1[8]=ATD1DR0H;
while(ATD1STAT1_CCF1==0);
a1[9]=ATD1DR1H;
while(ATD1STAT1_CCF2==0);
a1[10]=ATD1DR2H;
}
while
(1){
while(ATD0STAT1_CCF0==0);
a[0]=ATD0DR0H;
while(ATD0STAT1_CCF1==0);
a[1]=ATD0DR1H;
while(ATD0STAT1_CCF2==0);
a[2]=ATD0DR2H;
while(ATD0STAT1_CCF3==0);
a[3]=ATD0DR3H;
while(ATD0STAT1_CCF4==0);
a[4]=ATD0DR4H;
while(ATD0STAT1_CCF5==0);
a[5]=ATD0DR5H;
while(ATD0STAT1_CCF6==0);
a[6]=ATD0DR6H;
while(ATD0STAT1_CCF7==0);
a[7]=ATD0DR7H;
while(ATD1STAT1_CCF0==0);
a[8]=ATD1DR0H;
while(ATD1STAT1_CCF1==0);
a[9]=ATD1DR1H;
while(ATD1STAT1_CCF2==0);
a[10]=ATD1DR2H;
if(a[0]<=70){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=(-10);b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif(a[1]<=66){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=(-8);b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif(a[2]<=70){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=(-6);b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif(a[3]<=59){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=(-4);b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif(a[4]<=86){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=(-2);b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif(a[5]<=49){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif(a[6]<=47){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=2;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif(a[7]<=84){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=4;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif(a[8]<=60){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=6;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif(a[9]<=60){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=8;b[19]=0;b[20]=0;
}
elseif(a[10]<=60){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=10;
}
elseif((a[0]<=99)&&(a[1]<=87)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=(-9);b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif((a[1]<=87)&&(a[2]<=109)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=(-7);b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif((a[2]<=109)&&(a[3]<=94)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=(-5);b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif((a[3]<=94)&&(a[4]<=95)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=(-3);b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif((a[4]<=95)&&(a[5]<=75)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=(-1);b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif((a[5]<=75)&&(a[6]<=79)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=1;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif((a[6]<=79)&&(a[7]<=75)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=3;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif((a[7]<=75)&&(a[8]<=82)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=5;b[16]=0;b[17]=0;b[18]=0;b[19]=0;b[20]=0;
}
elseif((a[8]<=82)&&(a[9]<=75)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=7;b[18]=0;b[19]=0;b[20]=0;
}
elseif((a[9]<=75)&&(a[10]<=75)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=0;b[18]=0;b[19]=9;b[20]=0;
}
elseif((a[8]<=82)&&(a[9]<=75)){
for(i=0;i<11;i++){
b1[i]=b[i];
}
b[0]=0;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=0;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=0;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=0;b[16]=0;b[17]=7;b[18]=0;b[19]=0;b[20]=0;
}
pb();
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 光电 程序