首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

单片机捕捉功能

输入捕捉:具有此功能的一个管脚,定时器在内部时钟的作用下在运行,此时管脚来了个中断,假如上升沿吧。在中断的作用下,定时器停止工作,此时可以读出定时器的数值,读出后再开启定时器,等待下次中断,再读取一次定时器数值,二次相减,就可求出二次中断的间隔时间 输出比较:有一寄存器先存放你要定时的数,例如50.定时器在内部时钟下有0开始慢慢向上加,没加一次都会和那个寄存器比较,当等于那个寄存器值时 如50,此管脚就会跳变(输出一高电平或低电平) 以上摘自https://www.cnblogs.com/we1238/articles/7418933.html 捕获模式可以用来测量脉冲宽度或测量频率 简单说就是检测脉冲的边沿信号发生的时间(上升沿/下降沿),将当前定时器的值存到捕获寄存器中 ,完成一次捕获。 例如 ,我们可以先设置捕获上升沿,记录一次定时器值,然后设置下降沿,再记录一次定时器值,两次值之差就是高电平的脉宽,再根据计数频率就可以算出脉宽的具体时间 这可能只是捕获的基本用法 捕捉功能我看都是说两次上升沿或者两次下降沿的时间; 但是如何测量脉冲宽度呢?脉宽是:上升沿--》下降沿 的时间,难道 是先设置上升沿捕捉,等上升沿中断来,再设置下降沿捕捉? 可以设置成同时捕捉上升下降沿,存起来再根据需要测宽度还是周期检测脉宽的宽度

02

SysTick定时器

《Cortex-M3权威指南》中对SysTick的描述,SysTick定时器被捆绑在NVIC中,用于产生SYSTICK异常(异常号:15)。它是一个24位的递减定时器,当计数到 0 时,将从RELOAD 寄存器中自动重装载定时初值,开始新一轮计数。大多数操作系统需要一个硬件定时器来产生滴答中断,作为整个系统的时基。例如,为多个任务许以不同数目的时间片,确保没有一个任务霸占系统;或者把每个定时器周期的某个时间范围赐予特定的任务等,还有提供各种定时功能,都与滴答定时器有关。因此,需要一个定时器产生周期性的中断,而且最好还让用户程序不能随意访问它的寄存器,以维持操作系统的“心跳”的节奏。该定时器的时钟源可以是内部时钟(FCLK),或者是外部时钟(CM3处理器上的STCLK信号)。SysTick定时器能产生中断,异常中断。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,由于和MCU外设无关,所以代码的移植,在不同厂家的Cortex-M内核MCU之间,可以很方便的实现。

01
领券