定时器输入捕捉 and 输出比较

输入捕捉:如具有此功能的一个管脚,定时器在内部时钟的作用下在运行,此时管脚来了个中断,假如上升沿吧。在中断的作用下,定时器停止工作,此时可以读出定时器的数值,读出后再开启定时器,等待下次中断,再读取一次定时器数值,二次相减,就可求出二次中断的间隔时间。类似于 秒表 的功能。

输出比较:有一寄存器先存放你要定时的数,例如50.定时器在内部时钟下有0开始慢慢向上加,没加一次都会和那个寄存器比较,当等于那个寄存器值时 如50,此管脚就会跳变(输出一高电平或低电平)。类似于 闹钟 的功能。
 

输入捕捉:可以用来捕获外部事件,并为其赋予时间标记以说明此事件的发生时刻。

外部事件发生的触发信号由单片机中对应的引脚输入(具体可以参考单片机的datasheet),也可以通过模拟比较器单元来实现。

时间标记可用来计算频率,占空比及信号的其他特征,以及为事件创建日志,主要是用来测量外部信号的频率。

输出比较:定时器中计数寄存器在初始化完后会自动的计数。从bottom计数到top。并且有不同的工作模式。

另外还有个比较寄存器。一旦计数寄存器在从bottom到top计数过程中与比较寄存器匹配则会产生比较中断(比较中断使能的情况下)。

然后根据不同的工作模式计数寄存器将清零或者计数到top值。

1、朋友,可以解释一下输入捕获的工作原理不?

很简单,当你设置的捕获开始的时候,cpu会将计数寄存器的值复制到捕获比较寄存器中并开始计数,当再次捕捉到电平变化时,这是计数寄存器中的值减去刚才复制的值就是这段电平的持续时间,你可以设置上升沿捕获、下降沿捕获、或者上升沿下降沿都捕获。它没多大用处,最常用来测频率。

计数寄存器的初值,是自己写进去的吗?

是的,不过默认不要写入

我如果捕获上升沿,两个值相减,代表的时两个上升沿中间那段电平的时间。对不?

是的

timer1有五个通道(对应五个IO引脚),在同一时刻,只能捕获一个引脚的值,对不?

那是肯定的,通道很像ADC通道,是可以进行切换的

那输出比较的原理你可以帮我介绍一下不?

这里有两个单元:一个计数器单元和一个比较单元,比较单元就是个双缓冲寄存器,比较单元的值是可以根据不同的模式设置的,与此同时,计数器在不停的计数,并不停的与比较寄存器中的值进行比较,当计数器的值与比较寄存器的值相等的时候一个比较匹配就发生了,根据自己的设置,匹配了是io电平取反、变低、还是变高,就会产生不同的波形了。

比较单元的值是人为设进去的吧?

是的,但是他要根据你的控制寄存器的配置,来初始化你的比较匹配寄存器

上面这个总看不懂,好像不不止你说的那几种情况:“匹配了是io电平取反、变低、还是变高,就会产生不同的波形了”

就是比较匹配了你要IO电平怎么办?是清0还是置1?还是怎么样?这样才能产生波形啊 要不然你要比较单元有什么用呢?

设置输出就是置1,清除输出就是置0,切换输出就是将原来的电平取反,对不?

是的 你理解的很快

011:计数器向上计数达到最大值时将引脚置1,达到0时,引脚电平置0,,对不?

定时器1的输出比较模式怎么用。利用这个功能输出一个1KHZ,占空比为10%的程序怎么写啊?求高人指点

1、陪定时器1的功能为特殊功能,不是普通IO  在PERCFG这里
2、P1SEL引脚选择
3、P1DIR设为输出
4、T3CC0设置周期
5、T3CC1设置占空比
6、T3CCTL0 设置通道0
7、T3CCTL1 设置通道1
8、T3CTL设为模模式
9、用T3CTL打开即可

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到了使用STM32F401CCU6芯片和配置定时器来实现输入捕获功能。通过设置定时器通道为上升沿捕获和下降沿捕获,可以测量脉冲宽度或频率。具体的配置步骤如下: 1. 选择合适的芯片,如STM32F401CCU6,考虑到开发和烧写的便利性。 2. 配置时钟和串口,确保芯片能够达到最大输出频率。 3. 配置生成PWM定时器输入捕获定时器,如使用TIM3生成相同频率的PWM,并使用TIM2通道1进行输入捕获。设置参数并使能中断,在中断中进行计算。 4. 点击代码生成,生成相应的代码。 5. 推荐使用Clion进行编程,其代码补全和界面都比较高大上。 在引用中,介绍了使用的一些相关函数,如输入捕获回调函数`HAL_TIM_IC_CaptureCallback`,输入捕获中断开启函数`HAL_TIM_IC_Start_IT`,PWM定时器开启函数`HAL_TIM_PWM_Start`和输入捕获中断关闭函数`HAL_TIM_IC_Stop_IT`等。 最后,在引用中,对输入捕获的原理进行了说明。通过设置定时器通道为上升沿捕获和下降沿捕获,可以测量高电平时间,并进行计算。 综上所述,GD32F4定时器输入捕获功能与STM32F4类似,可以通过配置定时器通道和相应的函数来实现输入捕获。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [STM32F4系列HAL库配置定时器实验——输入捕获](https://blog.csdn.net/azs0504/article/details/119972469)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值