设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
中问网首页
我的收藏
站长博客
搜索
搜索
本版
帖子
用户
第一问答网
»
论坛
›
中问网
›
问答
›
关于ARM在中断中的一个语句或者宏定义的意义 ...
返回列表
发新帖
关于ARM在中断中的一个语句或者宏定义的意义
[复制链接]
11
|
2
|
2011-3-24 18:12:27
|
显示全部楼层
|
阅读模式
我在中断的示例中看到BIT_TIMER1这样一个寄存器。 这个示例是用来设置定时器1作为中断源的。里面在设置SRCPND和 INTPND时这样用:
if(rINTPND&BIT_TIMER1)
{
SRCPND|=BIT_TIMER1;
}
pISR_TIMER1=(int)Timer1_ISR;
//这句我理解,是把中断程序的地址给中断指针。
rINTMSK&=~(BIT_TIMER1);
//这句话书上解释是 开中断 。请问BIT_TIMER1到底是个什么东西! 他的值是多少? 程序开头没有这个的宏定义 ,希望大家帮我解释一下 或者猜测一下 它是什么东西 。谢谢!
回复
使用道具
举报
千问
|
2011-3-24 18:12:27
|
显示全部楼层
这个程序的意思是先查看定时器1是否有中断请求,如果有请求就打开定时器1的中断。分析如下:INTPND是中断挂起寄存器,它的每一位都对应着一个中断,如果某一位写1,就表示这个中断提出请求,0表示无情求。由于不知道你这个是arm7还是arm9,分别说一下吧,arm7中定时器1在INTPND寄存器中对应的位置是第12位,所以BIT_TIMER1的值是(1<<12),即第12位为1,剩下的为0.在arm9中BIT_TIMER1的值是(1<<11),即第11位为1,剩下的为0.if(rINTPND&BIT_TIMER1)的意思就是查看定时器1是否发出请求。如果有请求,就将SRCPND的对应的位置置1.rINTMSK&=~(BIT_TIMER1
回复
使用道具
举报
千问
|
2011-3-24 18:12:27
|
显示全部楼层
一定是在关联文件或头文件中有定义可以用右键 选择 找到定义处你试试
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
千问
主题
0
回帖
4882万
积分
论坛元老
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
论坛元老, 积分 48824836, 距离下一级还需 -38824837 积分
积分
48824836
加好友
发消息
回复楼主
返回列表
问答
热门排行