智能车制作

标题: 中断程序编写 [打印本页]

作者: bhwxl    时间: 2011-2-11 20:50
标题: 中断程序编写
编写中断程序时
#pragma CODE_SEG __NEAR_SEG NON_BANKED
和#pragma CODE_SEG DEFAULT
是什么意思啊?
ps:能不能推荐一些关于codewarrior中用c语言编程的书?
作者: fanfankaka123    时间: 2011-2-11 20:50
中断服务例程必须被定位于non-banked 区域,通过使用“#pragma CODE_SEG NON_BANKED”可以把中断例程定位于non-banked 区域。同时你必须确保“sectionNON_BANKED”不能出现在.prm文件中。在中断服务例程的末尾你需要添加“#pragma CODE_SEG DEFAULT”,否则的话,后面的函数也会被定位在“non-banked”区域。

所以说我们的中断服务例程必须被“#pragma CODE_SEG NON_BANKED”和“#pragma CODE_SEG DEFAULT”包围起来。
作者: fanfankaka123    时间: 2011-2-12 00:16
表示中断程序的开始和结束
作者: I08690127    时间: 2011-2-15 11:49
还是不懂。。。。。。。。。
作者: bhwxl    时间: 2011-2-19 20:03
回复 2# fanfankaka123


    还是不懂啊。前辈您能不能详细点?
作者: mashaokang1111    时间: 2011-2-20 19:30
就是所谓预处理..类似于汇编的伪指令..告诉编译器该干什么..把哪些代码放到ROM的哪个区域..
作者: bhwxl    时间: 2011-2-22 15:42
回复 2# fanfankaka123


    多谢你啦
作者: han个个呆呆    时间: 2011-2-23 21:13
嘿嘿,谢谢
作者: sinsic    时间: 2011-2-23 21:29
#pragma CODE_SEG NON_BANKED作用域到下一个#pragma CODE_SEG 为止
作者: lzwzdh    时间: 2011-2-25 13:53
#include <hidef.h>         
#include "derivative.h"
//char flg=0;
word count;
void time(void);        
void main(void)
{
   #pragma DATA_SEG SHORT a
   int a=1;
   #pragma DATA_SEG DEFAULT
   //char b;
   time();
   EnableInterrupts;
   while(1)
   {
     a++;
   }
   
}
void time(void)
{
        TSCR2 =0x86;         
        TSCR1 =0x80;   
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
__interrupt 2 void TIME0()
{
  count++;
  TFLG1=1;  
}
#pragma CODE_SEG DEFAULT   

请看一下我的这个程序,我觉得没什么错误 ,但为什么总是进入不了中断啊?
作者: E08610126    时间: 2011-3-2 15:06
我也看看
作者: CCGOGO    时间: 2011-4-1 20:29
学习了 嘿嘿
作者: 诗雨依然    时间: 2011-4-23 17:47
思考中》
作者: 薛耳首    时间: 2011-4-25 17:11
提示: 该帖被管理员或版主屏蔽
作者: 智能车制作00000    时间: 2011-4-26 15:06
哈哈  学习啦~
作者: 李武军    时间: 2011-9-2 20:37
回复 10# lzwzdh


    程序很乱啊。。。。。。。编辑一下,屏蔽掉的程序删掉,就可以发现问题了
作者: 晚安    时间: 2011-9-3 12:49
要是仔细点就好了
作者: 模电还要继续看    时间: 2013-2-2 02:20
二楼讲的很对的啊。。。不过英文呀:'(:'(:'(:'(好像就是分页之类的东西。。。具体不用懂也可以的。

知道把你所有的中断函数都放到那两句之间就可以了。(#pragma CODE_SEG NON_BANKED和#pragma CODE_SEG )




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2