mcu6 ch07 3输入捕捉与输出比较_第1页
mcu6 ch07 3输入捕捉与输出比较_第2页
mcu6 ch07 3输入捕捉与输出比较_第3页
mcu6 ch07 3输入捕捉与输出比较_第4页
mcu6 ch07 3输入捕捉与输出比较_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

嵌入式系统及应用第十二讲输入捕捉与输出比较【课本7.4】输入捕捉是用来监测外部开关量输入信号变化的时刻。输出比较的功能是用程序的方法在规定的较精确时刻输出需要的电平,实现对外部电路的控制。嵌入式系统及应用

7.4输入捕捉与输出比较

7.4.1输入捕捉与输出比较通用基础知识1.输入捕捉的基本含义与应用场合输入捕捉是用来监测外部开关量输入信号变化的时刻。当外部信号在指定的MCU输入捕捉引脚上发生一个沿跳变(上升沿或下降沿)时,定时器捕捉到沿跳变之后,把计数器当前值锁存到通道寄存器,同时产生输入捕捉中断,利用中断处理程序可以得到沿跳变的时刻。输入捕捉的应用场合主要有测量脉冲信号的周期与波形。第2页共20页嵌入式系统及应用2.输出比较的基本含义与应用场合

输出比较的功能是用程序的方法在规定的较精确时刻输出需要的电平,实现对外部电路的控制。MCU输出比较模块的基本工作原理是,当定时器的某一通道用作输出比较功能时,通道寄存器的值和计数寄存器的值每隔4个总线周期比较一次。当两个值相等时,输出比较模块置定时器捕捉/比较寄存器的中断标志位为1,并且在该通道的引脚上输出预先规定的电平。

输出比较的应用场合主要有产生一定间隔的脉冲,典型的应用实例就是实现软件的串行通讯。第3页共20页嵌入式系统及应用输入捕捉基本流程

工作过程:通过检测TIMx_CHx上的边沿信号,在边沿信号发生跳变(比如上升沿/下降沿)的时候,将当前定时器的值(TIMx_CNT)存放到对应的捕获/比较寄存器(TIMx_CCRx)里面,完成一次捕捉。第4页共20页嵌入式系统及应用输出比较基本流程

工作过程:将输出比较模式(TIMx_CCMRx寄存器中的OCxM位)和输出极性(TIMx_CCER寄存器中的CCxP位)定义的值输出到对应的引脚上。在比较匹配时,输出管脚可以保持它的电平、被设置成有效电平、无效电平或进行翻转。第5页共20页嵌入式系统及应用

7.4.2基于构件的输入捕捉和输出比较编程方法

1.STM32L431的输入捕捉和输出比较引脚介绍Timer模块中的TIM1、TIM2、TIM15、TIM16同样提供输入捕捉和输出比较功能,各定时器提供的通道数及对应引脚与PWM相同,见表7-5。2.输入捕捉,输出比较驱动构件头文件

输入捕捉构件的头文件incapture.h在工程的“\03_MCU\MCU_drivers”文件夹中,这里给出其API接口函数的使用说明及函数声明。第6页共20页嵌入式系统及应用输入捕捉头文件第7页共20页嵌入式系统及应用输出比较头文件第8页共20页嵌入式系统及应用3.基于构件的输入捕捉、输出比较编程举例(注:教材中案例是将GEC39定义为输出引脚,GEC10定义为输入引脚,在实验时要拿杜邦线将两个引脚相连,以便输入引脚能捕捉到相应信号)(1)初始化输入捕捉和输出比较

。在main函数的“初始化外设模块”处,初始化输入捕捉,设置通道号为INCAP_USER(PTA_NUM|2),时钟频率为375kHz,自动重装载值为1000,上升沿捕捉,初始化输出比较,设置通道号为OUTCMP_USER(PTB_NUM|10),时钟频率为3000kHZ,自动重装载值为1000,相位设为50%,模式为翻转电平模式。outcmp_init(OUTCMP_USER,3000,1000,50.0,0);//输出比较初始化incapture_init(INCAP_USER,375,1000,CAP_DOUBLE);//上升沿捕捉初始化(2)使能输入捕捉中断。在main函数的“使能模块中断”处,使能输入捕捉中断。cap_enable_int(INCAP_USER);//使能输入捕捉中断第9页共20页嵌入式系统及应用(3)在isr.c的中断服务例程INCAP_USER_Handler中,每次捕捉到上升沿或下降沿就触发中断。在捕捉到上升沿后,输出此刻是上升沿,并且输出时间(精确到毫秒)。在捕捉到下降沿后,输出此刻是下降沿,并且输出时间(精确到毫秒)。第10页共20页嵌入式系统及应用(4)初始化gpio(通用输入输出)、outcmp(输出比较)、incapture(输入捕获)模块。初始化输出比较后,将输出电平,产生的电平作为输入捕捉的信号源,进行输入捕捉实验。第11页共20页嵌入式系统及应用第12页共20页嵌入式系统及应用1.输入捕捉与输出比较构件函数原型分析构件的制作过程需要进行接口函数原型分析。这里分析输入捕捉与输出比较初始化函数都需要哪些参数。与脉宽调制的初始化函数类似,输入捕捉和输出比较的初始化函数也有对应通道号、时钟频率。同时,输入捕捉初始化函数添加了输入捕捉模式(上升沿、下降沿、双边沿捕捉)这个参数;输出比较初始化函数添加了相位、输出比较模式(翻转电平、强制高电平、强制低电平)这两个参数。

7.4.3输入捕捉与输出比较构件的制作过程第13页共20页嵌入式系统及应用输入捕捉驱动构件API接口函数声明

序号函数名简明功能1incap_initincap模块初始化2incapture_value获取该通道的计数器当前值3cap_enable_int使能输入捕捉中断4cap_disable_int禁止输入捕捉中断第14页共20页嵌入式系统及应用输入捕捉构件基本函数参数说明

序号参数含义备注1capNo输入捕捉通道号使用宏定义INCAP_PIN0...2clockFre时钟频率单位KHz,取值:375、750、1500、3000、6000、12000、24000、480003period自动重装载值计时器跳动次数,范围1-655364capmode输入捕捉模式上升沿、下降沿、双边沿第15页共20页嵌入式系统及应用输出比较驱动构件API接口函数声明

序号函数名简明功能1outcmp_inite模块初始化2outcmp_enable_int使能输出比较使用的timer模块中断3outcmp_disable_int除能输出比较使用的timer模块中断4outcmp_get_int获取输出比较使用的timer模块中断标志第16页共20页嵌入式系统及应用输出比较构件基本函数参数说明

序号参数含义备注1outcmpNo模块号使用gec.h中宏定义,例如OUTCMP_PIN02freq时钟频率单位KHz,取值:375、750、1500、3000、6000、12000、24000、480003cmpPeriod自动重装载值范围取决于计数器频率与计数器位数(16位)4cmpduty相位输出比较电平翻转位置占重装载值的比例:0.0~100.0对应0%~100%5cmpmode输出比较模式翻转电平、强制低电平、强制高电平),有宏定义常数使用第17页共20页嵌入式系统及应用2.输入捕捉构件部分源码输入捕捉的一般配置步骤主要有:初始化定时器和通道对应的IO时钟;初始化IO口,模式为输入;初始化输入捕捉通道;开启捕捉中断;编写中断服务函数等。输入捕捉构件要封装的主要函数有:初始化函数:voidincapture_init(uint16_tcapNo,uint32_tclockFre,uint16_tperiod,uint8_tcapmode)

获取通道当前值函数:voiduint16_tget_incapture_value(uint16_tcapNo)第18页共20页嵌入式系统及应用2.输出比较构件部分源码

输出比较的一般配置步骤主要有:使能定时器和相关IO口时钟;初始化IO口,模式为输出;初始化自动重载寄存器(ARR);设定输出比较模式;设定输出比较相位。

输出比较构件要封装的主要函数有:

初始化函数:voi

温馨提示

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

评论

0/150

提交评论