应如何初始化定时器

[复制链接]
1259|21
 楼主| shimx 发表于 2019-3-13 20:11 | 显示全部楼层 |阅读模式
F5438 TB0.6外部脉冲计数,应如何初始化定时器
wyjie 发表于 2019-3-13 20:14 | 显示全部楼层
楼主详细说说怎么回事啊,这么说太笼统了
 楼主| shimx 发表于 2019-3-13 20:17 | 显示全部楼层
现在做一个开发板,TB0.6上连接一个传感器,该传感器输出方波,主要是想在固定时间(20ms)读取一下方波的个数。不需要捕获中断
dengdc 发表于 2019-3-13 20:21 | 显示全部楼层

楼主程序可以公开吗?贴程序看下吧,这么说看不出什么原因
 楼主| shimx 发表于 2019-3-13 20:24 | 显示全部楼层
初始化代码如下:
void init_TimerB(void)
{
  P4DIR &= ~BIT6;
  P4SEL |= BIT6;

  TB0CCTL0 |= CCIE;                        // CCR0 interrupt enabled
  TB0CCR0 = 655;                         // 50Hz
  TB0CTL = TBSSEL_1 + MC_1 + TBCLR;        // ACLK, upmode, 32768Hz
  TB0CCTL6 = CM_1 + CCIS_1 + CAP + SCS;
}
应如何读取方波个数,求指点,谢谢!
午夜粪车 发表于 2019-3-13 20:27 | 显示全部楼层

那可以设置成捕获中断的吗?设置下降沿外部中断,然后在中断函数+1,就可以知道20ms里面有多少个方波了
jiajs 发表于 2019-3-13 20:30 | 显示全部楼层

你的计数模式是什么
wuhany 发表于 2019-3-14 14:36 | 显示全部楼层
外部计数应该是定时器中断吧
lizye 发表于 2019-3-14 14:38 | 显示全部楼层
你是说的测量脉冲长短吗?
jiajs 发表于 2019-3-14 14:41 | 显示全部楼层

TB0.6有这个IO吗?
dengdc 发表于 2019-3-14 14:43 | 显示全部楼层
不用中断的话,可以连续读取20ms该引脚的电平数据,对变化次数计数
 楼主| shimx 发表于 2019-3-14 14:46 | 显示全部楼层
该定时器的TB0CCR6寄存器就是用来计数的吧
jiaxw 发表于 2019-3-14 14:52 | 显示全部楼层

捕获模式和比较模式都会用到,具体看手册吧
 楼主| shimx 发表于 2019-3-14 14:55 | 显示全部楼层
恩,我现在读方波个数就是读TB0CCR6的值,但是出来的结果明显不对
午夜粪车 发表于 2019-3-14 14:58 | 显示全部楼层

不清楚你是怎么用的。
这个TB0CCR6在捕获模式下,是用来存储TAR数值的,不是计数
huangchui 发表于 2019-3-14 15:02 | 显示全部楼层
把T1做计数器,把产生的脉冲直接连到
jlyuan 发表于 2019-3-14 15:05 | 显示全部楼层
正常就是配置成外部脉冲计数器
脉冲计数配置定时器工作模式。
jiajs 发表于 2019-3-14 15:07 | 显示全部楼层
定时器捕获模式可以采集脉冲宽度。
jiahy 发表于 2019-3-14 15:11 | 显示全部楼层

做脉冲计数器的?主要是用到定时器的捕获功能的
liliang9554 发表于 2019-3-14 15:14 | 显示全部楼层
是不是得用捕获模式呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

857

主题

10661

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部