打印

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

[复制链接]
6686|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dqyubsh|  楼主 | 2011-7-21 16:26 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
沙发
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文件,它工作了。弄了两天,闷。

估计这种差别要看仿真,查看中断向量表才能知晓,懒得弄了。结贴。

使用特权

评论回复
5
wangtao92| | 2012-8-6 18:36 | 只看该作者
:lol

使用特权

评论回复
6
ayb_ice| | 2012-8-7 08:43 | 只看该作者
如图所示

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

未命名.JPG (30.21 KB )

未命名.JPG

使用特权

评论回复
7
sfpxfpcfp| | 2012-8-7 08:59 | 只看该作者
51已经不是51了,只是用了51的内核和指令集

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:yubsh@263.net

44

主题

2226

帖子

2

粉丝