![基于飞思卡尔图像采集_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/28/4812a444-4005-4955-807d-fb35392735c1/4812a444-4005-4955-807d-fb35392735c11.gif)
![基于飞思卡尔图像采集_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/28/4812a444-4005-4955-807d-fb35392735c1/4812a444-4005-4955-807d-fb35392735c12.gif)
![基于飞思卡尔图像采集_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/28/4812a444-4005-4955-807d-fb35392735c1/4812a444-4005-4955-807d-fb35392735c13.gif)
![基于飞思卡尔图像采集_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/28/4812a444-4005-4955-807d-fb35392735c1/4812a444-4005-4955-807d-fb35392735c14.gif)
![基于飞思卡尔图像采集_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/28/4812a444-4005-4955-807d-fb35392735c1/4812a444-4005-4955-807d-fb35392735c15.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、附录 C: 程序原代码 #include <hidef.h> /* common defines and macros */ #include <mc9s12dg128.h> /* derivative information */ #pragma LINK_INFO DERIVATIVE "mc9s12dg128b" #define hs TFLG1_C0F #define clr_hs TFLG1_C0F #define video ATD0DR0 #define odd_even PTIS_PTIS2 /* Declaration of Val
2、uebales */ /CCD variables/ #define r_max 40 #define l_max 40 char ccd_dr_max+2l_max; char ccdl_max; char r_chg; char row; char line; char interval=7; char oeflag=0; char y_upr_max+2; char temp_upr_max+2; #define latch 20 #define latch_neg -20 char w_flgr_max+2; int dif; /-/ /SCI variables/ char sci_
3、d; /-/ /PWM variables/ #define mid_P 20 int ctl; 第VI页 第十一章 总结 int errr_max+2; unsigned char m_speed; int str; int turn; unsigned char pulse6; unsigned char speed; unsigned char turn_S; unsigned char str_S; /-/ /general variables/ char x,y,z; /-/ /* Declaration of Functions */ /overall initiation voi
4、d ini_orall(void) DDRS_DDRS2=0; DDRS_DDRS7=1; TIOS_IOS0=0; TIOS_IOS1 = 0; TCTL4=0b00001101; TSCR1_TEN = 1; ICPAR_PA1EN = 1; DDRH=0xff; /initiate bus clock void ini_PLL(void) REFDV=3; SYNR=7; while(0=CRGFLG_LOCK); CLKSEL=0x80; VII第 页 /*SCI*/ /initiate SCI void ini_SCI(void) SCI0BD=208; SCI0CR1=0x00;
5、SCI0CR2=0x0C; /SCI receive void re_sci(void) while(SCI0SR1_RDRF!=1); sci_d=SCI0DRL; /SCI transmit void tx_sci(char tx_d) while(SCI0SR1_TC!=1); while(SCI0SR1_TDRE!=1); SCI0DRL=tx_d; /*/ /*PWM*/ /PWM & 33886 initialization void ini_PWM(void) PTS_PTS7 = 0; PWME = 0x00; PWMCTL_CON01= 1; PWMPRCLK = 0
6、x33 ; PWMSCLA = 100 ; PWMSCLB = 1 ; PWMCLK = 0b00011100; PWMPOL = 0xff ; PWMCAE = 0x00 ; PWMPER0 = 0x4e ; 第VIII页 第十一章 总结 PWMPER1 = 0x20 ; PWMDTY0 = 0x18 ; PWMDTY1 = 0x38 ; PWME_PWME1 = 1 ; PWMDTY2 = 120 ; PWMPER2 = 200 ; PWME_PWME2 = 1 ; /Set the angle of steer void pwm_set(int dutycycle) int high8;
7、 high8=dutycycle&0xFF00; PWMDTY0=high8>>8; PWMDTY1=dutycycle&0x00FF; /*/ /*SPEED*/ /Initiate the Average speed void speed_init(void) DDRM_DDRM0=0; DDRM_DDRM1=0; DDRM_DDRM2=0; DDRM_DDRM3=0; DDRM_DDRM4=0; DDRM_DDRM5=0; DDRJ_DDRJ6=0; DDRJ_DDRJ7=0; if(1=PTIM_PTIM0) m_speed = 120 + 2*(PTIM_
8、PTIM1*10+PTIM_PTIM2*5+PTIM_PTIM3*2+PTIM_PTIM4*2+PTIM_PTIM5+PTIJ_PTIJ6+PTIJ_PTIJ7); else m_speed = 120 - 2*(PTIM_PTIM1*10+PTIM_PTIM2*5+PTIM_PTIM3*2+PTIM_PTIM4*2+PTIM_PTIM5+PTIJ_PTIJ6+PTIJ_PTIJ7); IX第 页 PWMDTY2=m_speed; str_S=m_speed/2-10; /Get the current speed void get_speed() char k; for(k=0;k<5
9、;k+) pulsek=pulsek+1; pulse5=PACN1; speed=pulse5-pulse0; /Set the current speed void set_speed(unsigned char a) if(speed<a) PWMDTY2=200; if(speed>a) PWMDTY2=0; /*/ /*CONTROL*/ void vhcl_pid(void) get_speed(); if(err8>0) ctl=6250+42*err8; else ctl=6250+38*err8; /- dif=err2+err10-2*err6; if(d
10、if>-7)&&(dif<7)&&(err6>-15)&&(err6<15) str+; 第X页 第十一章 总结 turn=0; PTH=0xff; else turn+; if(turn>20) str=0; PTH=0x00; /- if(turn>0) set_speed(29); else set_speed(str_S); /- if(ctl<5200) ctl=5200; if(ctl>7400) ctl=7400; pwm_set(ctl); if(1=odd_even) oeflag
11、=1; if(0=odd_even) oeflag=0; /*/ /*CCD*/ /Initiate A/D registers void ini_AD(void) ATD0CTL2=0xC0; ATD0CTL3=0x08; ATD0CTL4=0x81; ATD0CTL5=0xA0; ATD0DIEN=0x00; XI第 页 /Scan the CCD image void ccd_sc(void) r_chg=0; while(r_chg<26-interval) if(1=hs) clr_hs=1; r_chg+; line=0; r_chg=0; for(row=1;row<
12、=r_max;) if(1=hs) clr_hs=1; r_chg+; if(r_chg>=interval) ini_AD(); for(line=0;line<l_max;line+) while(!ATD0STAT1_CCF0); ccdline=video; line=6; row+; w_flgrow-1=0; r_chg=0; ATD0CTL2=0x00; if(r_chg<interval-2)&&(line<l_max-3) ccd_drow-1line=ccdline; dif=ccdline-ccdline+3; if(0=w_flg
13、row-1) if(dif>latch) temp_uprow-1=line+3; w_flgrow-1=1; else 第XII页 第十一章 总结 if(dif<latch_neg) y_uprow-1=temp_uprow-1; errrow-1=y_uprow-1-mid_P; w_flgrow-1=2; line+; if(1=odd_even) oeflag=1; if(0=odd_even) oeflag=0; int get_mid(char a, char b, char c) if(a>b) x=b; b=a; a=x; if(b>c) x=c; c=
14、b; b=x; if(a>b) x=b; b=a; a=x; return b; void ccd_deal(void) for(row=2;row<r_max-1;row+) temp_uprow=get_mid(y_uprow-1,y_uprow,y_uprow+1); for(row=2;row<r_max-1;row+) y_uprow=temp_uprow; XIII第 页 if(1=odd_even) oeflag=1; if(0=odd_even) oeflag=0; /*/ /*/ /CCD module function void ccd_m(void) if(odd_even=1)&&(oeflag=0) /even field transfers to odd field oeflag=1; ccd_sc(); ccd_deal(); vhcl_pid(); if(odd_even=0)&&(oefl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招商引资项目合同(2篇)
- 理疗按摩技术加盟合同(2篇)
- 五年级班级管理工作计划
- 五年级数学下册苏教版第一单元第3课《等式的性质和解方程(2)》听评课记录
- 长螺旋钻孔灌注桩施工劳务合同范本
- 建筑施工安全合同范本
- 学校校医聘用合同范本
- 新款大巴车租赁合同范本
- 2025年度红薯新品种推广种植与收购合同
- 2025年度运输合同纠纷调解与仲裁模板
- 客运站员工安全生产教育培训
- 口腔预防儿童宣教
- 绿城桃李春风推广方案
- 体质健康概论
- 档案管理流程优化与效率提升
- 颅脑损伤的生物标志物
- 2023高考语文实用类文本阅读-新闻、通讯、访谈(含答案)
- 人工智能在商场应用
- (完整word版)大格子作文纸模板(带字数统计)
- 高考语文复习:小说阅读主观题题型探究-解读《理水》
- 物流营销(第四版) 课件 第一章 物流营销概述
评论
0/150
提交评论