嵌入式技术及应用实验定时器实验.doc_第1页
嵌入式技术及应用实验定时器实验.doc_第2页
嵌入式技术及应用实验定时器实验.doc_第3页
嵌入式技术及应用实验定时器实验.doc_第4页
嵌入式技术及应用实验定时器实验.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

年级 11级班级学号 11064029专业 自动化姓名 杨胜提题目名称实验三、定时器实验实验设计思路(1) 硬件电路设计TIM2定时器的通道1到4分别对应PA.00、PA.01、PA.02和PA.03引脚,这些处理器引脚已经以插针形式引出。(2) 软件程序设计 根据设计任务要求,程序内容比较简单。程序内容主要包括:1)配置TIM2各通道均为输出比较模式(预分频系数设为2),设置各通道的参数(TIM2 CC1=0x8000、TIM2 CC2=0x4000、TIM2 CC3=0x2000、TIM2 CC4=0x1000);2)在相应的TIM2定时器中断服务处理程序中根据定时器的值翻转输出电平,以输出方波。实验设计要求对TIM2定时器进行控制,使得TIM2通道1产生频率为183.1Hz的方波,通道2产生频率为366.2Hz的方波,通道3产生频率为732.4Hz的方波,通道4产生频率为1464.8Hz的方波。实验步骤与结果分析(1)使用Keil uVision3 通过ULINK 2仿真器连接EduKit-M3实验平台,打开实验例程目录TIMx_test 子目录下的TIMx.Uv2例程,编译链接工程; (2)点击MDK 的Debug菜单,选择软件仿真模式,点击Start/Stop Debug Session,将 PORTA.0、PORTA.1、PORTA.2和PORTA.3加入到逻辑分析仪中,点击Run按钮运行程序,在逻 辑分析仪中可以看到各通道波形。 (3)如果有示波器,也可以进行硬件调试,将EduKit-M3实验平台上的PA.00、PA.01、PA.02和PA.03 引脚接入示波器。选择项或Ctrl+F5键,远程连接EduKit-M3实验平台并下载调试代码到目标系统的RAM中, 点击Run按钮或按F5开始运行例程,在示波器上可以看到各通道的波形。 原程序仿真波形图 修改后程序仿真波形图示波器显示的183.1Hz的方波和366.2Hz的方波示波器显示的732.4Hz的方波的方波和1464.8Hz的方波主要程序代码分析 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_OCInitTypeDef TIM_OCInitStructure;vu16 CCR1_Val = 0x8000; /设置为2929.6 Hz vu16 CCR2_Val = 0x4000; vu16 CCR3_Val = 0x2000; vu16 CCR4_Val = 0x1000; ErrorStatus HSEStartUpStatus; TIM_TimeBaseStructure.TIM_Period = 0xFFFF; /设置周期为72MHz TIM_TimeBaseStructure.TIM_Prescaler = 0x02; / 预定分频为36 MHz TIM_TimeBaseStructure.TIM_ClockDivision = 0x0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_CounterMode 有如下几种选择。 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 2047;/取值在0x00000xFFFF之间 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; TIM_OC1Init(TIM2, &TIM_OCInitStructure); TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 1023; TIM_OC2Init(TIM2, &TIM_OCInitStructure); TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 511; TIM_OC3Init(TIM2, &TIM_OCInitStructure); TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 255; TIM_OC4Init(TIM2, &TIM_OCInitStructure); /* Enable the TIM2 global Interrupt */ 使能定时器2全局中断 NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET) TIM_ClearITPendingBit(TIM2, TIM_IT_CC1 );capture1 = TIM_GetCapture1(TIM2);TIM_SetCompare1(TIM2, capture1 + CCR1_Val ); /* TIM2_CH2 toggling with frequency = 366.2 Hz */ if (TIM_GetITStatus(TIM2, TIM_IT_CC2) != RESET) TIM_ClearITPendingBit(TIM2, TIM_IT_CC2);capture2 = TIM_GetCapture2(TIM2); TIM_SetCompare2(TIM2, capture2 + CCR2_Val); /* TIM2_CH3 toggling with frequency = 732.4 Hz */ if (TIM_GetITStatus(TIM2, TIM_IT_CC3) != RESET) TIM_ClearITPendingBit(TIM2, TIM_IT_CC3);capture3 = TIM_GetCapture3(TIM2); TIM_SetCompare3(TIM2, capture3 + CCR3_Val); /* TIM2_CH4 toggling with frequency = 1464.8 Hz */ if (TIM_GetITStatus(TIM2, TI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论