寻迹机器人源码及PCB图.doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:11 大小:116KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

寻迹机器人源码及PCB图.doc

寻迹机器人源码及PCB图.doc

预览

免费试读已结束,剩余 1 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

寻迹机器人源码及PCB图作者:HYPERLINK"http://www.61ic.com/ShowAuthor.asp?ChannelID=1024&AuthorName=A009"\o"A009"A009文章来源:HYPERLINK"http://www.61ic.com/ShowCopyFrom.asp?ChannelID=1024&SourceName=本站"本站点击数:1008更新时间:2007-3-25点击下载:HYPERLINK"http://www.61ic.com/Technology/UploadFiles_8326/200703/20070325123332614.rar"\o"寻迹机器人源码及PCB图"寻迹机器人源码及PCB图//***************************FileName:Robbot.c***********************////***************************ICCAVR6.30编译**************************//#include<io8535v.h>#include<macros.h>//****************************宏定义********************************//#defineAa0.5//PID参数#defineBa-0.5//PID参数#defineCa0//PID参数#defineAb0.09//PID参数#defineBb-0.1//PID参数#defineCb0//PID参数#defineU112//PID参数#defineMaxSpeed0x40//最大速度#defineMidSpeed0x18//中速,用于转弯#defineSize6//任务数组大小//*****************************全局变量定义**************************//charsflag=0x00;//记录上一次校偏状态charcrossflag=0;//过线标志,用于判断是否过线charforflag=0;//记录上一次机器人行进状态charforlight;//记录上一次A口光电传感器的状态floatEkA;//本次左边电机速度误差floatEkA_1=0;//上次左边电机速度误差floatEkA_2=0;//上上次左边电机速度误差floatEkB;//本次左边电机速度误差floatEkB_1=0;//上次左边电机速度误差floatEkB_2=0;//上上次左边电机速度误差charflage=0;chara=0;//溢出次数,控制PID窗口时间charc=0;//控制寻线频率intdesireV=10;charb=0;chartime=0;//机器人行走步数charfob=0;//=1后退,=0前进charTask[Size]={0x37,0x27,0x1B,0x29,0x23,0x1B};//任务数据数组//******************************定时器1初始化*************************//voidTimer1Init(inttemptimsk,inttemptccrA,inttemptccrB){unsignedcharsreg;TIMSK=temptimsk;sreg=SREG;//保存全局中断标志_CLI();//屏蔽所有中断TCCR1A=temptccrA;TCCR1B=temptccrB;SREG=sreg;//恢复全局中断标志}//******************************写OCR1A寄存器**************************//voidSetOutputComReg1A(inttempocr){unsignedcharsreg;sreg=SREG;_CLI();OCR1A=tempocr;SREG=sreg;}//******************************写OCR1B寄存器**************************//voidSetOutputComReg1B(inttempocr){unsignedcharsreg;sreg=SREG;_CLI();OCR1B=tempocr;SREG=sreg;}//******************************读OCR1A寄存器**************************//intGetOutputComReg1A(){inttemp;temp=OCR1A;return(temp);}//***************