TI中文支持网
TI专业的中文技术问题搜集分享网站

关于计量时间的问题

初学Tiva C,请问如何利用单片机计量时间?

例如,现在在某个pin上输入了一个高电平,0.1秒后变为低电平,如何用单片机测出这0.1秒的时间?

xyz549040622:

用延时,有个延时函数的

Alexander Zhang1:

回复 xyz549040622:

我不是要让它产生持续0.1s的高电平,而是外部输入了一个高电平,我想测出这个高电平持续了多久

xyz549040622:

回复 Alexander Zhang1:

1.用示波器量,猝发

2.在电平进来的时候开定时器,在电平结束时读取定时器值,你好好看看数据手册定时器那一章,有详细的说明,计数和计时

Alexander Zhang1:

回复 xyz549040622:

那如果要多次测量,有没有函数可以清除定时器寄存器的值呢

Michael Sun:

可以通过定时器的捕获功能来抓。

设置双边沿都可以触发中断,

TimerControlEvent(WTIMER1_BASE, TIMER_B, TIMER_EVENT_BOTH_EDGES);

然后在中断中判断电平值,并记录当前定时器的值,然后通过定时器来计算时间。

TimerValueGet(WTIMER1_BASE, TIMER_B)

Kongxl:

回复 Michael Sun:

原来这么干过,不过频率高了(>256Kbps)的话得用直接寄存器操作,调用库函数速度太慢,会漏信号。

赞(0)
未经允许不得转载:TI中文支持网 » 关于计量时间的问题
分享到: 更多 (0)