KEIL C51的编译指令#pragma noiv什么意思

[复制链接]
7623|6
 楼主| dqyubsh 发表于 2011-7-21 16:26 | 显示全部楼层 |阅读模式
#pragma noiv或者NOINTVECTOR是什么意思,用在什么场合?谢谢!
nbsmaps 发表于 2011-7-21 16:52 | 显示全部楼层
NO INTVECTOR的缩写,即禁止产生中断矢量表. 其它情况下也没用到过,一般在USB这类的设备中有用.因为有的芯片本身带了中断向量表,要是不要用的话,就得用上这个语句了.详细可以网上找找资料.
nbsmaps 发表于 2011-7-21 16:55 | 显示全部楼层
还有这里有大师级们写的KEIL手册,也有好的朋友汉化的
 楼主| dqyubsh 发表于 2011-7-21 17:36 | 显示全部楼层
我其实也是在一个USB应用使用定时器出现了问题,不得不仔细研读这个指令。
1,这个语句只对当前的文件有效
2,该文件内涉及的中断可以不使用缺省的中断向量表,而是需要人为定义中断号、优先级。

我的问题是,假如我在这个程序中定义了timer1,那么是不是可以这样写:
void timer1 (void) interrupt 3        // Timer1溢出中断,中断源编号3,使用寄存器组1  
{
}
实际上,我写了,他不工作。我把这一段拷贝到一个新的.C文件,它工作了。弄了两天,闷。

估计这种差别要看仿真,查看中断向量表才能知晓,懒得弄了。结贴。
wangtao92 发表于 2012-8-6 18:36 | 显示全部楼层
ayb_ice 发表于 2012-8-7 08:43 | 显示全部楼层
如图所示

有些改进型51对中断部分改进很大,与传统51完全不一样了,这时就禁止传统形式,由自己定义中断方式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
sfpxfpcfp 发表于 2012-8-7 08:59 | 显示全部楼层
51已经不是51了,只是用了51的内核和指令集
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:yubsh@263.net

44

主题

2226

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部