3253|6

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于f2812 的周期中断的配置问题 [复制链接]

各位DSP的高手:
    节日快乐!
    本人最近在学习 TI 的  f2812,主要用于AD采样,其中中断控制用EVA进行处理。但是,在配置的时候发现问题:
目前,我的周期中断配置按如下函数去写。
void eva_config()
{
// Configure EVA
// Assumes EVA Clock is already enabled in InitSysCtrl();
    EvaRegs.GPTCONA.all = 0x0000;
        EvaRegs.GPTCONA.bit.T1TOADC= 2;      // Enable EVASOC in EVA

        EvaRegs.T1CMPR = 0x0000;           // Setup T1 compare value这句有必要配置吗?
        EvaRegs.T1PR = 0x4b;                 // Setup period register
        EvaRegs.EVAIMRA.bit.T1PINT = 0;      // Mask the period interrupt
        EvaRegs.EVAIFRA.bit.T1PINT = 1;      // Reset the period interrupt flag

        EvaRegs.T1CNT = 0x0000;
        EvaRegs.T1CON.all = 0x1042;//问题在这里,T1CON[1]=1,是否有必要? 比较使能是什么意思?
}

麻烦各位高手帮我看看,以上配置的参数是否有问题?
我在写入程序的时候,发现都没能达到我要的采样率。
我怀疑是中断没配置好。

还请各位指点!

最新回复

一般来讲, 如果在ISR中不清除中断标志位,那么系统会不断地发生中断,也就是说中断处理结束后接着进入该中断程序执行,这样程序就锁死在该中断程序里面了。 当然也有芯片在响应中断后硬件会自动清除中断标记,这个需要看芯片手册是怎么讲的,不同的芯片处理方式不一样。 目前差不多明白问题的原因了,感谢高手的指点.  详情 回复 发表于 2009-5-7 18:57
点赞 关注

回复
举报

75

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没有用过2812, 随便说说.
T1CNT的作用是每个周期(由T1PR控制)计数,当T1CNT计数值与T1CMPR的值相等的时候, 就会触发某个预先定义的事件,比如I/O输出变化,启动ADC数据采集.

具体的你可以看看数据手册.  
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 zyzhang365 的回复:
没有用过2812, 随便说说.
T1CNT的作用是每个周期(由T1PR控制)计数,当T1CNT计数值与T1CMPR的值相等的时候, 就会触发某个预先定义的事件,比如I/O输出变化,启动ADC数据采集.

具体的你可以看看数据手册.  


这位朋友,是否可以根据你的开发经验详细谈谈?

我这里就是要触发 启动ADC数据采集.
如果单纯只是设定了T1PR,而没有T1CMPR

是不是说明,当T1CNT=T1PR的时候,周期中断产生并
触发 启动ADC数据采集.?
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
我认为那样是有问题的。
首先需要正确配置ADC如何启动,这里应该是时T1比较输出吧;
然后才是如何配置输出比较器的配置。
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

5
 
目前我打算用周期中断的方式进行配置,所以调整后变成如下代码:

void eva_config()
{
// Configure EVA
// Assumes EVA Clock is already enabled in InitSysCtrl();
    EvaRegs.GPTCONA.all = 0x0000;
EvaRegs.GPTCONA.bit.T1TOADC= 2;      // Enable EVASOC in EVA
EvaRegs.T1PR = 0x4b;                // Setup period register
EvaRegs.EVAIMRA.bit.T1PINT = 0;      // Mask the period interrupt
EvaRegs.EVAIFRA.bit.T1PINT = 1;      // Reset the period interrupt flag

EvaRegs.T1CNT = 0x0000;
EvaRegs.T1CON.all = 0x1040;//去掉 比较使能,但后来发现配置的周期 和 采样周期相距甚远^}
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
我打算周期中断 驱动AD

想问一点的就是,在单片机内,如果设置了中断 和 对应的中断服务子程序入口

设定中断每隔一定时间会触发一次,并且将对于 标志位置位

中断响应后,如果没有清0这个中断标志,下一次的中断照样可以申请,只是得不到执行,无法进入中断子程序而已 ,但AD的启动却已经随着中断的申请而触发了

请问
这样理解对吗?
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

7
 
一般来讲, 如果在ISR中不清除中断标志位,那么系统会不断地发生中断,也就是说中断处理结束后接着进入该中断程序执行,这样程序就锁死在该中断程序里面了。
当然也有芯片在响应中断后硬件会自动清除中断标记,这个需要看芯片手册是怎么讲的,不同的芯片处理方式不一样。




目前差不多明白问题的原因了,感谢高手的指点.
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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