1513|0

2015

帖子

0

TA的资源

纯净的硅(中级)

C6000的定时器运用(二) [复制链接]

众多的主控芯片都有定时器,定时器的运用也无非是设置定时时间,到时间了产生中断,然后在中断里干一件事情。如果按这种思路说起来,好像C6000的定时器也跳不出这个定式。当然C6000的定时器还可以计数外来事件个数,和产生脉冲信号。让定时器干什么事情的区别,就在于控制寄存器的配置状况,按照功能需求和所能完成的事项来配置。
  在我的项目里也是当做一个普通的定时器来使用,没有开发出他如此多的功能,实现方式如下:
   首先要对其初始化,初始化的过程在上一节里面已经介绍了,代码如下:
void TIMER_Init(void)
{  
  TIMER_Config myTimerConfig;              
  hTimer = TIMER_open(TIMER_DEV0, TIMER_OPEN_RESET);
  TIMER_getConfig( hTimer, &myTimerConfig);
  myTimerConfig.ctl &= 0xff3f;
  myTimerConfig.ctl |= 0x3c0;
  myTimerConfig.prd  = 0x200;
  myTimerConfig.cnt = 0x00000000;
  TIMER_config(hTimer, &myTimerConfig);
  IRQ_enable(TIMER_getEventId(hTimer));
}

   定时周期寄存器prd,可以根据需要,修改定时周期。
   然后在定时中断interrupt void timer0_isr()中完成需要完成的事项。
   最后需要注意的是在中断向量列表中要添加上这个中断。
   
  在主控芯片中,定时器中断是一个重要的内容,但是在C6000中实现起来,好像也没有这么麻烦,但是如果想看中断效果,使用printf会有一定的时间延迟,如果还周到系统中其他因素的影响,则中断时间就更不仅仅是受prd的影响了。具体的情况还要在实际的程序中体现。


回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表