PIC单片机原理及应用--DSPIC30FL8-输入扑捉输出比较

上传人:e****s 文档编号:243731208 上传时间:2024-09-29 格式:PPT 页数:26 大小:970KB
返回 下载 相关 举报
PIC单片机原理及应用--DSPIC30FL8-输入扑捉输出比较_第1页
第1页 / 共26页
PIC单片机原理及应用--DSPIC30FL8-输入扑捉输出比较_第2页
第2页 / 共26页
PIC单片机原理及应用--DSPIC30FL8-输入扑捉输出比较_第3页
第3页 / 共26页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,2007 许辉,dsPIC30F-输入捕捉/输出比较,1,一、,输入捕捉,输入捕捉模块用于在输入引脚上有事件发生时,捕捉来自两个可选时基之一的定时器值。,输入捕捉功能在需要进行频率时间周期和脉冲测量的应用中是相当有用的。,输入捕捉模块有多种工作模式,可通过ICxCON 存放器选择。这些工作模式包括:,. 在ICx 引脚输入电平的下降沿捕捉定时器值,. 在ICx 引脚输入电平的上升沿捕捉定时器值,. 在ICx 引脚输入电平的第4 个上升沿捕捉定时器值,. 在ICx 引脚输入电平的第16 个上升沿捕捉定时器值,. 在ICx 引脚输入电平的每个上升沿和下降沿捕捉定时器值,输入捕捉模块有4 级FIFO 缓冲器。用户可以选择产生CPU 中断所需要的捕捉事件数量。,2,输入捕捉存放器,dsPIC30F 器件中的每个捕捉通道都有以下存放器,,. ICxCON :输入捕捉控制存放器,. ICxBUF :输入捕捉缓冲存放器,3,定时器选择:每个dsPIC30F 器件可能有一个或多个输入捕捉通道。每个通道都可以选择两个16 位定时器之一作为时基。,可以通过ICTMR 控制位ICxCON实现定时器源的选择。定时器可以被设置为使用内部时钟源FOSC/4或使用在TxCK 引脚上外接的同步外部时钟源。,输入捕捉事件模式,当ICx 引脚上有事件发生时,输入捕捉模块捕捉所选的时基存放器的16 位值。可以被捕捉的事件分为以下3 类:,1. 简单捕捉事件模式,在ICx 引脚输入电平的下降沿捕捉定时器值,在ICx 引脚输入电平的上升沿捕捉定时器值,2. 每个边沿上升和下降都捕捉定时器值,3. 预分频捕捉事件模式,在ICx 引脚输入电平的第4 个上升沿捕捉定时器值,在ICx 引脚输入电平的第16 个上升沿捕捉定时器值,通过设置相应的输入捕捉模式位 ICM ICxCON 可以配置上述输入捕捉模式。,4,简单捕捉事件模式,捕捉模块能够根据ICx 引脚上输入信号的边沿选择捕捉模式定义的上升沿或下降沿捕捉定时器计数值TMR2 或TMR3 。,这些模式可以通过分别设置ICMICxCON 位为“010或“011来指定。在这些模式下,不使用预分频计数器。,输入捕捉逻辑电路根据内部相位时钟检测和同步捕捉引脚信号的上升或下降沿。如果出现上升/ 下降沿,捕捉模块逻辑将会把当前时基值写入捕捉缓冲器并发信号给中断产生逻辑。当发生的捕捉事件的数量与ICI 控制位指定的数量匹配时,那么相应的捕捉通道中断标志位ICxIF 将会在捕捉缓冲器写事件之后2 个指令周期置1。,如果捕捉时基在每个指令周期都加1 的话,捕捉到的计数值将会是ICx 引脚有事件发生后1 或2个指令周期出现的值。这个延时是随ICx 沿事件而变化的,而实际上ICx 沿事件与指令周期时钟和输入捕捉逻辑电路延时相关。如果到捕捉时基的输入时钟被预分频,那么捕捉的值的延时将被消除。,5,6,预分频器捕捉事件,捕捉模块有两个预分频捕捉模式。预分频模式分别由设置ICM ICxCON 位为“100或为“101来选择。,在这些模式下,捕捉模块每计数引脚的4 或16 个上升沿才发生一次捕捉事件。,捕捉预分频计数器在每个捕捉引脚的有效的上升沿上增加。引脚上的上升沿有效地作为计数器的时钟。当预分频计数器等于4 或16 个计数取决于所选择的模式时, 计数器将输出一个“有效的捕捉事件信号,随后将该信号与指令周期时钟同步。该同步了的捕捉事件信号将触发一个捕获缓冲写事件,同时向中断产生逻辑电路发出信号。各个捕捉通道中断状态标志ICxIF,在捕捉缓冲写事件后的2 个指令周期后被置1。,如果捕捉时基在每个指令周期加1,捕捉到的计数值将是同步捕捉事件发生后1 或2 个指令周期出现的值。,7,边沿检测模式,边沿检测模式通过设置ICMICxCON 位为“001来选择。在该模式下,没有使用捕捉预分频计数器。,当输入捕捉模块被配置成边沿检测模式时,该模块将:,. 在每个上升沿或下降沿将输入捕捉中断标志置1 ICxIF。,. 没有在这种模式中使用捕捉时中断模式位ICIICxCON 。每个捕捉事件都将产生中断。,. 不置位捕捉溢出位ICOV ICxCON 。,和简单捕获事件模式一样,输入捕捉逻辑电路根据内部相位时钟检测和同步捕捉引脚信号的上升和下降沿。如果发生上升或下降沿,捕捉模块逻辑电路将当前的时基值写到捕捉缓冲区,然后向中断产生逻辑电路发出信号。相应的捕捉通道中断状态标志ICxIF,在捕捉缓冲写事件后的2 个指令周期后被置1。,8,9,二、输出比较,输出比较模块有把所选时基值与一个或两个比较存放器的值取决于所选的工作模式作比较的功能。此外,它在比较匹配事件发生时能产生单个输出脉冲或一连串输出脉冲。,如同大多数dsPIC 外设一样,它在匹配事件发生时也能产生中断。,dsPIC30F 器件可有至多八个输出比较通道,以符号OC1、OC2 和OC3 等表示。所有输出比较通道在功能上是都相同的。在本章中,引脚、存放器或位名称中的“x表示特定的输出比较通道。,每个输出比较通道可以使用两个可选时基中的一个。使用OCTSEL 位OCxCON 选择时基。,10,输出比较存放器,每个输出比较通道均有以下存放器:,. OCxCON :通道的控制存放器,. OCxR :输出比较通道的数据存放器,. OCxRS :输出比较通道的辅助数据存放器,11,12,工作模式,每个输出比较模块均有以下工作模式:,. 单比较匹配模式,. 双比较匹配模式产生,单个输出脉冲,连续输出脉冲,. 简单脉宽调制模式,带有故障保护输入,不带故障保护输入,13,单比较匹配模式,当控制位OCM OCxCON 设置为“001、“010或“011时,所选的输出比较通道被分别配置为三种单输出比较匹配模式中的一种模式。,在单比较模式下,把一个值装入OCxR 存放器,并将该值与所选的递增计数器存放器TMRy 的值作比较。当比较匹配事件发生时,将产生以下事件之一:,. 当OCx 引脚的初始状态为低电平时,比较匹配事件强制该引脚为高电平。在单比较匹配事件发生时,产生中断。,. 当OCx 引脚的初始状态为高电平时,比较匹配事件强制该引脚为低电平。在单比较匹配事件发生时,产生中断。,. 比较匹配事件使OCx 引脚电平交替翻转。翻转事件是连续的,且每次翻转事件都会产生一次中断。,14,比较模式输出驱动为高电平,设置控制位OCM=“001。还应该使能比较时基。,一旦使能,输出引脚OCx 将初始化驱动为低电平,并保持该低电平直到TMRy 和OCxR 存放器之间发生匹配。,. 在比较时基与OCxR 存放器发生比较匹配后的下一个指令时钟,OCx 引脚驱动为高电平。该OCx 引脚将保持高电平直到改变模式或该模块被禁止。,. 比较时基将计数到相关的周期存放器中包含的值后,在下一个指令时钟复位为0x0000 。,. 在OCx 引脚驱动为高电平后再过两个指令时钟,相应通道的中断标志位OCxIF 被置1。,15,比较模式输出驱动为低电平,设置控制位OCM=“010。还必须使能比较时基。,一旦使能,输出引脚OCx 将初始化驱动为高电平,并保持该高电平直到定时器和OCxR 存放器之间发生匹配。,. 在比较时基与OCxR 存放器发生比较匹配后的下一个指令时钟,OCx 引脚驱动为低电平。该OCx 引脚将保持低电平直到改变模式或该模块被禁止。,. 比较时基将计数到相关的周期存放器中包含的值后,在下一个指令时钟复位为0x0000 。,. 在OCx 引脚驱动为低电平后再过两个指令时钟,相应通道的中断标志位OCxIF 被置1。,16,单比较模式电平交替翻转输出,请设置控制位OCM= “011 。此外,必须选择并使能Timer 2 或Timer 3 。,一旦使能,输出引脚OCx 将初始化驱动为低电平,并在随后每一次当定时器和OCxR 存放器之间发生匹配事件时,交替输出上下电平。,. 在比较时基与OCxR 存放器发生比较匹配后的下一个指令时钟,OCx 引脚电平翻转。该OCx 引脚将保持此新状态直到发生下一次翻转事件、改变模式或该模块被禁止。,. 比较时基将计数到相关周期存放器中的值后,在下一个指令时钟复位为0x0000 。,. 在OCx 引脚电平翻转之后再过两个指令时钟,相应通道的中断标志位OCxIF 被置1。,注:器件复位时,内部OCx 引脚输出逻辑被设置为逻辑“0。但是,在交替翻转模式下,OCx 引脚的工作状态可以通过用户软件设置。,17,18,19,双比较匹配模式,当控制位OCM =“100 或“101OCxCON 时,所选的输出比较通道被配置为如下两种双比较匹配模式之一:,. 单输出脉冲模式,. 连续输出脉冲模式,在双比较模式下,该模块在处理比较匹配事件时使用OCxR 和OCxRS 存放器。,将OCxR 存放器的值与递增计数器TMRy 的计数值作比较,并且在比较匹配事件发生时,在OCx 引脚上产生脉冲的前上升沿。,然后OCxRS 存放器与同一个递增计数器TMRy 的计数值作比较,并且在比较匹配事件发生时,在OCx 引脚上产生脉冲的后下降沿。,20,单输出脉冲,设置控制位OCM= “100 。另外,必须选择并使能比较时基。,一旦使能,输出引脚OCx 将驱动为低电平,并保持该低电平直到时,基和OCxR 存放器之间发生匹配。,. 在比较时基与OCxR 存放器发生比较匹配后的下一个指令时钟,OCx 引脚驱动为高电平。OCx 引脚将保持为高电平直到时基和OCxRS 存放器之间发生下一次匹配事件。此时,该引脚将驱动为低电平。该OCx 引脚将保持低电平直到改变模式或该模块被禁止。,. 比较时基将计数到相关的周期存放器中包含的值后,在下一个指令时钟复位为0x0000 。,. 如果比较时基周期存放器包含的值小于OCxRS 存放器包含的值,那么就不会产生脉冲的下降沿。OCx 引脚将保持高电平直到OCxRS=PRy 、模式改变或复位条件产生。,. 在OCx 引脚被驱动为低电平后单脉冲的下降沿再过2 个指令时钟,相应通道的中断标志位OCxIF 被置1。,21,22,连续输出脉冲,设置控制位OCM= “101 。此外,还应该选择和使能比较时基。,一旦使能,输出引脚OCx 将驱动为低电平,并保持该低电平直到比较时基和OCxR 存放器之间发生匹配。,. 在比较时基与OCxR 存放器发生比较匹配后的下一个指令时钟,OCx 引脚驱动为高电平。OCx 引脚将保持为高电平,直到发生下一次时基和OCxRS 存放器匹配,此时引脚被驱动为低电平。在用户不加干预的情况下,在OCx 引脚上会重复产生从低到高边沿和从高到低边沿的脉冲序列。,. OCx 引脚上将产生连续脉冲,直到改变模式或模块被禁止。,. 比较时基将计数到相关周期存放器中所包含的值,然后在下一个指令时钟复位为0x0000 。,. 如果比较时基周期存放器值小于OCxRS 存放器值,就不会产生下降沿。OCx 引脚将保持为高电平,直到OCxRS = PR2 、发生模式改变或器件复位。,. 在OCx 引脚被驱动为低电平后单脉冲的下降沿再过2 个指令时钟,相应通道的中断标志位OCxIF 置位。,23,24,实验四、输出比较,1、练习一,功能描述: RD2OC3输出比较,单比较匹配模式,电平交替翻转输出,修改调试程序,并用示波器观察输出波形,2、练习二,功能描述: 双比较匹配模式,连续脉冲输出,正占空比47,修改调试程序,并用示波器观察输出波形,25,/*,*功能描述: RD2OC3输出比较,单比较匹配模式,电平交替翻转输出*,*/,#include p30f4011.h,/*系统初始化子程序,放在程序首部*/,void InitializeSys(),INTCON1 = 0x0000; /关中断,INTCON2 = 0x0000;,IEC0 = 0x0000; /IECx中断禁止,IEC1 = 0x0000;,IEC2 = 0x0000;,/*输出比较模块配置子程序*/,void ConfigOC3(),OC3CON = 0x0000; /Timer2是比较3的时钟源,OC3R = 0x001a; /设置匹配值0x001a,T2CON = 0x0000; /预分频1,16位定时器,使用内部时钟,PR2 = 0x003a; /周期存放器赋值0x003a,TMR2在0x003a处复位,TMR2 = 0x0006; /TMR2初值0x0006,IFS1bits.OC3IF = 0; /去除输出比较中断标志位,IEC1bits.OC3IE = 1; /使能输出比较中断,IPC4bits.OC3IP = 7; /设置中断优先级7,IEC0bits.T2IE = 0; /不使能Timer2定时器中断,/*中断子程序:输出比较3中断,比较匹配时产生中断*/,void _attribute_(_interrupt_) _OC3Interrupt(),IFS1bits.OC3IF = 0;/去除输出比较3中断标志位,main(),InitializeSys();,ConfigOC3();,T2CONbits.TON = 1; /翻开定时器2,OC3CONbits.OCM = 3; /选择单比较匹配模式,电平交替翻转输出,while(1),; /可编写其它程序,26,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 幼儿教育


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!