首页 理论教育 单片机嵌入式系统实践:输出比较功能

单片机嵌入式系统实践:输出比较功能

时间:2023-11-19 理论教育 版权反馈
【摘要】:输出比较的功能是用来在程序规定的时候输出所需要的电平,以实现对外部电路的控制。输出比较功能的结构示意图如图8-4所示,可以看出,输出比较功能由计数器、通道值寄存器、比较器、中断逻辑及引脚控制组成。输出比较最简单、最常用的功能就是产生一定间隔的脉冲。

单片机嵌入式系统实践:输出比较功能

输出比较的功能是用来在程序规定的时候输出所需要的电平,以实现对外部电路的控制。当定时器模块的某一通道工作在输出比较模式时,计数器的值每变化一次就会与该通道的通道值寄存器值进行比较,当两者相等时,输出比较模块将定时器通道状态与控制寄存器TPMxCnSC的CHnF置位,并且在该通道的引脚上出现预先规定的电平,如果输出比较中断允许就会产生一个中断。输出比较功能的结构示意图如图8-4所示,可以看出,输出比较功能由计数器、通道值寄存器、比较器、中断逻辑及引脚控制组成。

978-7-111-50417-7-Chapter08-15.jpg

图8-4 输出比较功能的结构示意图

1.输出比较执行过程

在输出比较过程中,周期由定时器模块的模寄存器决定,而电平宽度由通道值寄存器决定,输出比较过程示意图如图8-5所示。当计数器值与通道值相等时,通道引脚上就发生预先设定的电平变化,图中由高电平变化成低电平,这种变化由通道状态和控制寄存器TPMxCnSC的MSnB、MSnA、ELSnB和ELSnA位决定。

978-7-111-50417-7-Chapter08-16.jpg

图8-5 输出比较过程示意图(www.xing528.com)

当通道被配置为输出比较模式时(CPWMS=0,MSnB:MSnA=01,ELSnB:ELSnA≠00),通道引脚TPMxCHn引脚将忽略相关数据方向控制,并认为是由TPM控制输出,此时ELSnB:ELSnA控制位将决定引脚实现何种输出状态。ELSnB:ELSnA有三种组合值决定TPMxCHn引脚是否被锁存、清空或置位。

通道值寄存器是输出比较功能中一个重要组成部分,输出比较功能中的“比较”,其实就是通道值寄存器的值与当前计数器的值进行比较。通道值寄存器是一个16位的寄存器,分高字节和低字节与16位计数器相匹配,写入任何一个字节都会将值存到缓冲器中,当两个字节都写入时,其值才会被连续送入通道值寄存器中。通道寄存器值的大小决定了输出电平的时间点。

2.输出比较应用

对比使用延时来得到所需输出电平的方法,输出比较功能的优势在于可以得到非常精确的输出时间间隔,硬件的比较功能不受其他中断的影响,而且对用户程序没有额外的负担。

输出比较最简单、最常用的功能就是产生一定间隔的脉冲。典型的应用实例就是实现软件的串行通信。首先根据通信的波特率向通道寄存器写入延时的值,根据待传的数据位确定有效输出电平的高低。在输出比较中断处理程序中,重新更改通道寄存器的值,并根据下一位数据改写有效输出电平控制位。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈