初学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)的话得用直接寄存器操作,调用库函数速度太慢,会漏信号。