资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
计算机学院课程设计报告 题 目: 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_it.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”页面中,“Library”选为“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 extra 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”和“Use flash loader”,点击“Edit”,勾选“Relocate”,输入“0x20000000”。(5)Third-Party Driver选件设置。浏览“ST-LINK Driver”目录下文件,选择STR75XDriver.dll。设置完所有选项后,单击确定即可。三, 结果 灯LD2,LD3,LD4会以不同频率在闪烁,因为选择不同的时钟源,通过分频器得到一定频率的触发时钟触发计数器,触发器按照某种方式计数,计数完毕后自动重载初始值并产生中断,中断后执行不同的TB定时器子程序,所以三个灯以不同频率在闪。附录:主程序如下void main()/* 用于判断是生成DEBUG代码还是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.TB_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 interrupt */ 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_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); /* 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_PeripheralClockConfig(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 */ 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
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号