您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助]BF518 用定时器 获取系统时间 问题
本帖共有229个阅读者
发表帖子 发表投票 回复主题
[求助]BF518 用定时器 获取系统时间 问题
feelingliang(论坛新手)
feelingliang
头衔:社区公民
帮派:无帮无派
帖数:18
金钱:275
积分:27
注册时间:2017/9/14
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助]BF518 用定时器 获取系统时间 问题
要写一个时钟的程序,包括年、月、日、时、分、秒、毫秒、微秒、纳秒。
系统频率是100M,想采用定时器 获得精确度为ns级的时间,定时器初始化配置如下,
void Init_Timers(void)
{
*pTIMER0_CONFIG = EMU_RUN | IRQ_ENA | PERIOD_CNT |  PWM_OUT;
*pTIMER0_PERIOD = 1;
*pTIMER0_WIDTH = 1;
*pTIMER_ENABLE = 0x0001;
}
这个配置是想让定时器计数寄存器(TIMER0_COUNTER )每10ns记一次数,来获得ns级的时间,但不使用定时器中断的方法来计数,
因为使用定时器中断的话,每10ns进一次中断导致其他程序无法执行。
我这里有个秒脉冲中断,当有秒脉冲到来时,想让定时器计数器中的值清零。
问题:
  1、不使用定时器中断,那么定时器计数寄存器的只是一直增加,直到最大范围吗?
  2、 获得定时器计数的是这个count=*pTIMER0_COUNTER;语句吗?,我用这个语句得到的计数值不对,一直是1,是因为周期设置成1的原因吗?
  3、秒脉冲到来时,如何让计数器的值清零?
  4、如果我这个想法不对,您有什么好的方法来实现ns级的时间。
  
  

夜空中最亮的星
等级:论坛新手 参考IP地址:*.*.*.*
2018/4/10 23:04:10
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5187
金钱:34761
积分:6369
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
通用定时器定不了这种精读,你周期1肯定是不行的,你得用内核定时器

我是OP...
等级:管理员 参考IP地址:*.*.*.*
2018/4/11 7:46:19
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154219 Call, 1 Queries, Processed in 0.015625 second(s),