|
發布時間: 2020-4-20 13:00
正文摘要:C206 missing function-prototype #include<reg52.h> #include<intrins.h> #define uchar unsigned char static unsigned char table[6]={0,0,0,0,0,0}; //Declare functions uchar Busy_Check() ... |
| /********************引腳定義*********************/ #include "reg51.h" typedef unsigned int uint; typedef unsigned char uchar; #define Duty_cycle 35 //占空間 #define Cycle 100 //PWM周期 sbit sensor_1 = P1^1; //紅外檢測 sbit sensor_2 = P1^1; sbit sensor_3 = P1^3; sbit Motor_1H = P2^0; //電機驅動控制信號 sbit Motor_1L = P2^1; sbit Motor_2H = P2^2; sbit Motor_2L = P2^3; sbit En_pwm1 = P2^4; //使能信號(RWM) sbit En_pwm2 = P2^5; uchar timer1; //定義變量 /***************主函數*********************/ void mian( ) { TimelConfig();//定時器初始化 while(1) { if(Sensor_1==0 && Sensor_2==1 && Semsor_3==0) //狀態:軌跡居中 Go_Straight(); //向前 else if(Sensor_1==0 && Sensor_2==0 && Semsor_3==1) //偏左 Turn_Right(); //右轉 else if(Sensor_1==1 && Sensor_2==0 && Semsor_3==0) //偏右 Turn_left(); //左轉 else if(Sensor_1==0 && Sensor_2==0 && Semsor_3==0) //偏離軌道 Go_Back(); //后退 else Go_Straight( ); //前進 } } /**************設置定時器***********/ void Time1Config() { TMOD|= 0x10; //設置定時計數器T1工作在模式1 /***定時器賦初始值, 12MHZ下定時0.5ms***/ TH1 = 0xFE; TL1 = 0x0c; ET1 = 1; //開啟定時器1中斷 EA = 1; TR1 = 1; //開啟定時器 } /********************定時器1的中斷函數********************/ void Time1(void) interrupt 3 //3 為定時器1的中斷號 { timer1++; if(timer1>Cyc1e) //PWM周期為100*0.5ms { timer1=0; } if(timer1 < Duty_cyc1e) //改變Duty_cyc1e這個值可以改變直流電機的速度 { En_pwm1=1; En_pwm2=1; } e1se { En_pwm1=0; En_pwm2=0; } TH1 = 0xFE; //重新賦初值 TL1 = 0x0c; } |
| write_add()函數在第12行被注釋掉了但在第138行被調用。 |
| 錯誤太多,程序結構都有問題。 |