嵌入式 设计刘顺欣 0900214002嵌入式 TB定时器 刘顺欣0900214002

上传人:f****u 文档编号:123899615 上传时间:2020-03-10 格式:DOC 页数:8 大小:65.50KB
返回 下载 相关 举报
嵌入式 设计刘顺欣 0900214002嵌入式 TB定时器 刘顺欣0900214002_第1页
第1页 / 共8页
嵌入式 设计刘顺欣 0900214002嵌入式 TB定时器 刘顺欣0900214002_第2页
第2页 / 共8页
嵌入式 设计刘顺欣 0900214002嵌入式 TB定时器 刘顺欣0900214002_第3页
第3页 / 共8页
嵌入式 设计刘顺欣 0900214002嵌入式 TB定时器 刘顺欣0900214002_第4页
第4页 / 共8页
嵌入式 设计刘顺欣 0900214002嵌入式 TB定时器 刘顺欣0900214002_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《嵌入式 设计刘顺欣 0900214002嵌入式 TB定时器 刘顺欣0900214002》由会员分享,可在线阅读,更多相关《嵌入式 设计刘顺欣 0900214002嵌入式 TB定时器 刘顺欣0900214002(8页珍藏版)》请在金锄头文库上搜索。

1、计算机学院课程设计报告 题 目: TB基准时间定时器 指 导 老 师: 谢 维 波 专 业: 模式识别与智能系统 学 号: 0900214002 姓 名: 刘 顺 欣 2010年2月TB基准时间定时器的设计一, 设计目的使用TB定时器的两种时间频率,进一步了解定时器的功能。二, 设计步骤1、在IAR Embedded Workbench IDE工作区中新建一个工程,命名为TB,并保存。2、在该工程下建立一个startup文件组,在这个组中添加两个ARM汇编程序文件:75x_init.s和75x_vect.s。3、选择项目名,执行添加文件命令,在TB示例中选择75x_conf.h文件、75x_i

2、t.c文件和main.c文件并添加。4、继续选择并添加以下文件:75x_cfg.c 75x_lib.c 75x_tb.c 75x_gpio.c、75x_eic.c和75x_mrcc.c。5、将开发板与PC连接好,设置工程项目配置并编译连接。6、设置项目选件:(1)通用选件“General Option”设置。a) “Target”页面中,“Processor Variant”框中选择“Device”,并单击右边的器件选择按钮选择芯片型号“ST STR750”,“Processor mode”框中选择“ARM”,其他采取默认设置。b) “Library Configuration”页面中,“Li

3、brary”选为“Full”。其他页面均采用默认设置。(2)C/C+编译器选件设置。a) “Optimization”页面中,选择“Size” “Low” 。b) “Preprocessor”页面中,在“Additional include directories”框中输入一下两个目录:“E:NE-STR750开发学习板软件包NESTR75xFstdliblibraryinc”、“ E:NE-STR750开发学习板软件包NESTR75xFexamplesTB”。其他页面均采用默认设置。(3)Linker选件设置。a) Output页面中,勾选“Allow C-SPY-specific extr

4、a output file”,其他采用默认设置。b) “Extra Output”页面中,选择“General extra output file”,其他采用默认设置。c) “Config”页面中,选择“Override default”,然后浏览本设计使用的.XCL文件名。本设计把程序下载到片内flash中执行,选择文件lnkarm_flash.xcl。(4)Debugger选件设置。a) 在“Setup”页面的“Driver”选项中选择“Third-Party Driver”,勾选“Run to”并填入“main”。b) 在“Download”页面中选择“Verify download”和

5、“Use flash loader”,点击“Edit”,勾选“Relocate”,输入“0x20000000”。(5)Third-Party Driver选件设置。浏览“ST-LINK Driver”目录下文件,选择STR75XDriver.dll。设置完所有选项后,单击确定即可。三, 结果 灯LD2,LD3,LD4会以不同频率在闪烁,因为选择不同的时钟源,通过分频器得到一定频率的触发时钟触发计数器,触发器按照某种方式计数,计数完毕后自动重载初始值并产生中断,中断后执行不同的TB定时器子程序,所以三个灯以不同频率在闪。附录:主程序如下void main()/* 用于判断是生成DEBUG代码还是

6、RELEASE代码 */#ifdef DEBUG debug();#endif /* 设置MRCC */ MRCC_Configuration(); /* GPIO引脚设置 */ GPIO_Configuration(); /* 设置EIC */ EIC_Configuration();/* TB configuration in Timing mode -*/ /* TB is configured to generate an update every 2 ms */ TB_InitStructure.TB_Mode = TB_Mode_Timing; TB_InitStructure.T

7、B_ClockSource = TB_ClockSource_CKTIM; TB_InitStructure.TB_Prescaler = 239; /* TB clock = 60MHz / (239+1) = 250KHz*/ TB_InitStructure.TB_CounterMode = TB_CounterMode_Up; TB_InitStructure.TB_AutoReload = 499; /* update each: 250 KHz/(499+1)= 500HZ */ TB_Init(&TB_InitStructure); /* Enable TB update int

8、errupt */ TB_ITConfig(TB_IT_Update, ENABLE); /* Enable TB counter */ TB_Cmd(ENABLE); while(1); /* Function Name : MRCC_Configuration* Description : Configures the system clocks.* Input : None* Output : None* Return : None*/void MRCC_Configuration(void) /* MRCC system reset(for debug purpose) */ MRCC

9、_DeInit(); /* Wait for OSC4M start-up */ OSC4MStartUpStatus = MRCC_WaitForOSC4MStartUp(); if(OSC4MStartUpStatus = SUCCESS) /* Set HCLK to 60 MHz */ MRCC_HCLKConfig(MRCC_CKSYS_Div1); /* Set CKTIM to 60 MHz */ MRCC_CKTIMConfig(MRCC_HCLK_Div1); /* Set PCLK to 30 MHz */ MRCC_PCLKConfig(MRCC_CKTIM_Div2);

10、 /* Enable Flash burst mode */ CFG_FLASHBurstConfig(CFG_FLASHBurst_Enable); /* Set CKSYS to 60 MHz */ MRCC_CKSYSConfig(MRCC_CKSYS_OSC4MPLL, MRCC_PLL_Mul_15); /* GPIO pins optimized for 3V3 operation */ MRCC_IOVoltageRangeConfig(MRCC_IOVoltageRange_3V3); /* Enable TB and GPIO clocks */ MRCC_Periphera

11、lClockConfig(MRCC_Peripheral_TB | MRCC_Peripheral_GPIO, ENABLE);/* Function Name : GPIO_Configuration* Description : Configures the used GPIO ports.* Input : None* Output : None* Return : None*/void GPIO_Configuration(void) GPIO_InitTypeDef GPIO_InitStructure; /* Configure P0.12 as output push-pull

12、*/ GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12; GPIO_Init(GPIO0, &GPIO_InitStructure); /* Configure P0.09 as output push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_Init(GPIO0, &GPIO_InitStructure); /* Configure P0.08 as output push-pull */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_Init(GPIO0, &GPIO_InitStructure);/* Function Name : EIC_Configuration* Description : Configures the interrupt controller.* Input : None* Output : None* Return : None*/void EIC_Configuration(void) EIC_IRQInitTypeDef EIC_IRQInitStructu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号