No.82002 作者:tone 邮件:handsometone@hotmail.com ID:36420 登陆:2次 文章数:1篇 最后登陆IP:218.75.123.170 最后登陆:2005/7/26 18:38:13 注册:2005/6/25 20:49:38 财富:106 发帖时间:2005/7/25 16:31:34 发贴者IP:218.75.123.170 标题:tone:请教摇控器控制小车主函数里的部分代码意思 摘要:No.82002请教摇控器控制小车主函数里的部分代码意思 功能: 1、电机只在小车向前行的过程中带动小车前进,转向是通过人力实现; 2、小车速度的控制是通过调节电位器电阻实现; 保护: 1、总电流最大30A,超过30A进行限流,限流30秒后切断电源输出,小车恢复初邕状态。 2、初次启动保护:小车上电后,如果电位器处于打开高速状态,小车不会前进,必须将电位器关闭再开启方可调节速度。 3、欠压保护:上电启动时电池电压低于11V,立即进入欠压保护;运行期间电压低于10.5V,30秒切断输出。 程序所采用的单片机是cypress的。 下面是主函数: void main() { M8C_EnableGInt; DELSIG_Start(DELSIG_FULLRANGE); DELSIG_bCal(0x42,DELSIG_CAL_VBG ); if(!(PRT1DR & 0x10)) { GreenLedFlash3(); GreenLedFlash3(); StudyIn(); while(1); } else { ReadOut(); if((ReadOutBuffer[0] == 48)&&(ReadOutBuffer[1] == 48)&&(ReadOutBuffer[2] == 48)) { ReadOutBuffer[0] = 207; ReadOutBuffer[1] = 198; ReadOutBuffer[2] = 189; } } Init(); start: while(VehicleState == 0) { if (ADSample(CHANNEL_7) < 25) //CHANNEL_7所采样的是电机速度; VehicleState = V_STOP; RedLedFlash(); } PWM_DisableInt(); Timer_EnableInt(); WorkMode = 0; CurrentTime = 0; VoltageTime = 0; PWM = 0; SystemInit(); PWM_WritePulseWidth(0); while(1) { WorkMode = ADSample(CHANNEL_7); if (WorkMode > = 26) { if (VehicleState == V_STOP) { PWM_Start(); VehicleState = V_RUN; } if(WorkMode > 240) WPWM = 255; else { WPWM = WorkMode+10; } if (CurrentTime == ......
>>返回讨论的主题
|