智能小车嵌入式系统设计分析Word下载.docx

上传人:b****2 文档编号:14752127 上传时间:2022-10-24 格式:DOCX 页数:24 大小:146.87KB
下载 相关 举报
智能小车嵌入式系统设计分析Word下载.docx_第1页
第1页 / 共24页
智能小车嵌入式系统设计分析Word下载.docx_第2页
第2页 / 共24页
智能小车嵌入式系统设计分析Word下载.docx_第3页
第3页 / 共24页
智能小车嵌入式系统设计分析Word下载.docx_第4页
第4页 / 共24页
智能小车嵌入式系统设计分析Word下载.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

智能小车嵌入式系统设计分析Word下载.docx

《智能小车嵌入式系统设计分析Word下载.docx》由会员分享,可在线阅读,更多相关《智能小车嵌入式系统设计分析Word下载.docx(24页珍藏版)》请在冰豆网上搜索。

智能小车嵌入式系统设计分析Word下载.docx

拥有7组GPIO,可配置为输入、输出、开漏、弱上拉等模式。

4个32位Timer,每个都个拆分为2个独立子定时器。

6路16位PWM,通过CCP管脚能产生高达25Mhz的方波。

自制车架车轮用步进电机精确控制,步进电机用放大电路驱动,受PWM信号控制。

锂离子电池给放大电路和开发板供电。

车架前方有红外探头,通过即时返回数据进行判断实现自动避障。

开发板外接红外线接收头,实现红外线人工控制。

编程开发平台IAREmbeddedWorkbenchIAR是LM3S系列适配的开发平台之一,适合用C语言和库函数进行编程,操作简单,较易上手。

3.可行性论证LM3S1138芯片的资源比较丰富,自带Timer产生PWM方波。

智能小车的速度要求低于步进电机的最高速度,并能通过步进电机实现精准控制,每个脉冲转动一个固定角度,因此步进电机适合作为驱动。

红外线控制通过芯片对突发接收的信号进行解码,获取红外遥控的控制信息,红外解码使用流行的方案。

车架前方装有四个探头,四路信号的触发顺序可作为障碍判断的依据。

二、软件编程1.PWM模块#include#include#include#include#include#include#include#include#include#include#include“LM3S1138_PinMap.H”/*定义按键*/#defineKEY_PORTSYSCTL_PERIPH_GPIOG#defineKEY_PINGPIO_PORTG_BASE,GPIO_PIN_5#definekeyGet()GPIOPinRead(KEY_PIN)/定义全局的系统时钟变量unsignedlongTheSysClock=12000000UL;

/*Functionname:

jtagWait*Descriptions:

防止JTAG失效,KEY=PG5*inputparameters:

无*outputparameters:

无*Returnedvalue:

无*Createdby:

张伟杰*CreatedDate:

2014.05.15*/voidjtagWait(void)SysCtlPeripheralEnable(KEY_PORT);

/*使能KEY所在的GPIO端口*/GPIOPinTypeGPIOInput(KEY_PIN);

/*设置KEY所在管脚为输入*/if(keyGet()=0x00)/*如果复位时按下KEY,则进入*/for(;

);

/*死循环,以等待JTAG连接*/SysCtlPeripheralDisable(KEY_PORT);

/*禁止KEY所在的GPIO端口*/*Functionname:

Timer_0_Init*Descriptions:

初始化Timer0*inputparameters:

2014.05.15*/voidTimer_0_Init(void)SysCtlPeripheralEnable(CCP0_PERIPH);

/*使能CCP0所在的GPIO端口PB0*/GPIOPinTypeTimer(CCP0_PORT,CCP0_PIN);

/*配置CCP0管脚为PWM输出*/SysCtlPeripheralEnable(CCP1_PERIPH);

/*使能CCP1所在的GPIO端口PF6*/GPIOPinTypeTimer(CCP1_PORT,CCP1_PIN);

/*配置CCP1管脚为PWM输出*/SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);

/*使能定时器模块*/TimerConfigure(TIMER0_BASE,TIMER_CFG_16_BIT_PAIR|TIMER_CFG_A_PWM|TIMER_CFG_B_PWM);

/*配置定时器为双16位PWM*/TimerControlLevel(TIMER0_BASE,TIMER_BOTH,false);

/*控制PWM输出反相*/*Functionname:

Timer_0_Level_1*Descriptions:

左右轮一档*inputparameters:

2014.05.15*/voidTimer_0_Level_1(void)/TimerPrescaleSet(TIMER0_BASE,TIMER_BOTH,99);

/*设置预分频值*/TimerControlLevel(TIMER0_BASE,TIMER_BOTH,true);

TimerLoadSet(TIMER0_BASE,TIMER_BOTH,60000);

/*设置定时器初值,AB均为50Hz*/TimerMatchSet(TIMER0_BASE,TIMER_A,6000);

/*设置TimerA的PWM匹配值*/TimerMatchSet(TIMER0_BASE,TIMER_B,6000);

/*设置TimerB的PWM匹配值*/TimerEnable(TIMER0_BASE,TIMER_BOTH);

/*使能定时器计数,PWM开始输出*/系统初始化voidSystemInit(void)SysCtlLDOSet(SYSCTL_LDO_2_50V);

/设置LDO输出电压SysCtlClockSet(SYSCTL_USE_OSC|/系统时钟设置,采用主振荡器SYSCTL_OSC_MAIN|SYSCTL_XTAL_6MHZ|SYSCTL_SYSDIV_1);

/*SysCtlLDOSet(SYSCTL_LDO_2_75V);

/配置PLL前须将LDO电压设置为2.75VSysCtlClockSet(SYSCTL_USE_PLL|/系统时钟设置,采用PLLSYSCTL_OSC_MAIN|/主振荡器SYSCTL_XTAL_6MHZ|/外接6MHz晶振SYSCTL_SYSDIV_10);

/分频结果为20MHz*/TheSysClock=SysCtlClockGet();

/获取系统时钟,单位:

Hzintmain(void)jtagWait();

/*防止JTAG失效,重要!

*/SystemInit();

Timer_0_Init();

/*定时器初始化*/Timer_0_Level_1();

for(;

2.红外接收器模块#include#include#include#include#include#include#include#include#include#include#include#include“LM3S1138_PinMap.H”/*定义按键*/#defineKEY_PORTSYSCTL_PERIPH_GPIOG#defineKEY_PINGPIO_PORTG_BASE,GPIO_PIN_5#definekeyGet()GPIOPinRead(KEY_PIN)#defineIR_PORTSYSCTL_PERIPH_GPIOF#defineIR_PINGPIO_PORTF_BASE,GPIO_PIN_1/定义全局的系统时钟变量unsignedlongTheSysClock=12000000UL;

unsignedIR_flag=0;

unsignedlongIR_code_3232;

unsignedlongIR_code_8=0;

unsigneda;

intTime_Get();

voidDelay_100_us();

IR_Int_Init*Descriptions:

初始化IR端口和中断*inputparameters:

2014.05.18*/voidIR_Int_Init(void)SysCtlPeripheralEnable(IR_PORT);

GPIOPinTypeGPIOInput(IR_PIN);

GPIOIntTypeSet(IR_PIN,GPIO_LOW_LEVEL);

GPIOPinIntEnable(IR_PIN);

IntEnable(INT_GPIOF);

IntMasterEnable();

/系统初始化voidSystemInit(void)SysCtlLDOSet(SYSCTL_LDO_2_50V);

/分频结果为20MHz*/TheSysClock=SysCtlClockGet()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1