void PIDmotor() { s16 var=0; u8 servo_rela_speed =xielv1; //电机速度受角度的限制 double K_servo_rela_speed=0.1;//???待测 斜率影响电机速度 speed = LPTMR0_CNR;// 改动 var=IncPIDCalc(speed); uiGoalvalue1 += var; if((uiGoalvalue1>=0)&&(uiGoalvalue1<=900)) { GOON(); if(motorfirst_flag==0) { if(uiGoalvalue1>500) { FTM_PWM_Duty(FTM0,CH0,uiGoalvalue1); delayms(500); motorfirst_flag=1; } } if(motorfirst_flag==1) FTM_PWM_Duty(FTM0,CH0,uiGoalvalue1); } else if(uiGoalvalue1>900) { GOON(); uiGoalvalue1=900; } else if(uiGoalvalue1<0) { uiGoalvalue1=0; //shache(); //FTM_PWM_Duty(FTM0,CH0,300); } else { //uiGoalvalue1=300;//printf("\n****是负值*****\r\n\n"); } if( iError<=-30) { shache(); FTM_PWM_Duty(FTM0,CH0,900); } }
void main() { uchar shujv[8]; uchar stop=0; uchar cejv=1; uchar flag=0; uchar helpcejv=0; init_io(); led0=1;led1=1;ledk=1; while(NRF_Check()) { led0=0; delayms(1000); led0=1; delayms(1000); } TX_Mode(); //设置为发送模式 /*************自己加的***********************/ while(CNRF_Check()) //检查nrf是否存在 { led0=0; delayms(1000); led0=1; delayms(1000); } CTX_Mode(); /*************自己加的***********************/ stop=byte_read(0x2000); //读取上一次保留的值 while(1) { wenshi(shujv); //写入前4个数据 // yali(shujv);//写入第5个数据 // shache(shujv);//写入第六个数据 Get_weight(); if (weight_shiwu/1000<=5) shujv[4]='0'; else shujv[4]='1'; if(stop==0) shujv[5]='1'; if(stop==1) shujv[5]='0'; if(out==0) shujv[6]='1'; else shujv[6]='0'; ////////////////////////////// if(NRF24L01_TxPacket(shujv)==TX_OK) { led1=0; delayms(300); led1=1; delayms(10); ///// flag=1; } else flag=0; ////////////////////////////// if(flag==1) { if(CNRF24L01_TxPacket(shujv)==TX_OK) { led3=0; delayms(300); led3=1; delayms(10); cejv=0; helpcejv=0; } else { helpcejv++; delayms(100); if(helpcejv>2) { led2=0; delayms(300); led2=1; delayms(10); cejv=0; helpcejv=0; } } ///////////////////////////////////////////////// if(shache(cejv,stop)==1) { led0=0; delayms(300); led0=1; delayms(10); stop=1; SectorErase(0x2000); byte_write(0x2000,stop); } if(checkbutton(cejv,stop)==0) {stop=1; SectorErase(0x2000); byte_write(0x2000,stop); } } } }