智能车制作

标题: 关于中断 [打印本页]

作者: wdcdd    时间: 2008-3-10 22:28
标题: 关于中断
<>帮我看看这个程序吧,关于定时中断的</P><P>为什么编译通不过?加入中断,是不是要设置什么?</P><BR><BR><IMG src="http://www.intelligentcar.cn/images/affix.gif"><A target=_blank href="http://download.intelligentcar.cn/bbsupfile//upfile/main.rar" target=_blank>main.rar</A>
作者: Roacher    时间: 2008-3-11 00:32
标题: Re:关于中断
&nbsp;怎么这么麻烦啊? 直接贴出来不就好了
作者: wdcdd    时间: 2008-3-11 07:15
标题: Re:关于中断
<>#include &lt;hidef.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* common defines and macros */<BR>#include &lt;mc9s12dg128.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; /* derivative information */</P><P><BR>#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"</P><P><BR>void RealTime(void);</P><P><BR>&nbsp;&nbsp; <BR>void main(void)<BR>{<BR>&nbsp; CLKSEL &amp;= 0x7F;&nbsp; <BR>&nbsp; REFDV = 1;&nbsp; <BR>&nbsp; SYNR = 2;&nbsp; <BR>&nbsp; while(!(CRGFLG&amp;0x08)); <BR>&nbsp; CLKSEL |= 0x80; </P><P>&nbsp; TSCR1 = 0x80; /* enable timer TCNT */<BR>&nbsp; TSCR2 = 0x87; /* TCNT prescaler setup */<BR>&nbsp;&nbsp; <BR>&nbsp; DDRB=0xff; /* PTB as output */<BR>&nbsp; PORTB=0xff;&nbsp; /* LEDs off */<BR>&nbsp;// asm{<BR>&nbsp;// nop<BR>&nbsp;// } <BR>&nbsp; EnableInterrupts; //开全局中断 <BR>&nbsp; for (;;)<BR>&nbsp; { <BR>&nbsp; }<BR>}</P><P><BR>void interrupt 8 RealTime(void) {<BR>&nbsp; TFLG2=0x80;<BR>&nbsp; TCNT=3035;<BR>&nbsp; PORTB ^= 0x80;<BR>}&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp; //直接这样接为什么编译通不过?要设置 或 改动其他地方吗?我这没有书,看到别人这么加的,请帮忙解决</P>
作者: superyongzhe    时间: 2008-3-23 00:24
标题: Re:关于中断
<>应该在中断前加#pragma CODE_SEG NON_BANKED</P><P>即改为</P><P>#include &lt;hidef.h&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* common defines and macros */<BR>#include &lt;mc9s12dg128.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; /* derivative information */</P><P><BR>#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"</P><P><BR>void RealTime(void);</P><P><BR>&nbsp;&nbsp; <BR>void main(void)<BR>{<BR>&nbsp; CLKSEL &amp;= 0x7F;&nbsp; <BR>&nbsp; REFDV = 1;&nbsp; <BR>&nbsp; SYNR = 2;&nbsp; <BR>&nbsp; while(!(CRGFLG&amp;0x08)); <BR>&nbsp; CLKSEL |= 0x80; </P><P>&nbsp; TSCR1 = 0x80; /* enable timer TCNT */<BR>&nbsp; TSCR2 = 0x87; /* TCNT prescaler setup */<BR>&nbsp;&nbsp; <BR>&nbsp; DDRB=0xff; /* PTB as output */<BR>&nbsp; PORTB=0xff;&nbsp; /* LEDs off */<BR>&nbsp;// asm{<BR>&nbsp;// nop<BR>&nbsp;// } <BR>&nbsp; EnableInterrupts; //开全局中断 <BR>&nbsp; for (;;)<BR>&nbsp; { <BR>&nbsp; }<BR>}</P><P><FONT color=#ff0033>#pragma CODE_SEG NON_BANKED</FONT><BR>void interrupt 8 RealTime(void) {<BR>&nbsp; TFLG2=0x80;<BR>&nbsp; TCNT=3035;<BR>&nbsp; PORTB ^= 0x80;<BR>}&nbsp;</P>
作者: feitianhuli    时间: 2008-3-24 03:11
标题: Re:关于中断
<>为什么要加上那条语句 <FONT color=#ff0033>#pragma CODE_SEG NON_BANKED啊?</FONT></P><P><FONT color=#ff0033>是不是每个中断前都要加这个啊?</FONT></P><P><FONT color=#ff0033></FONT>另外中断处理程序编完之后,是不是还要在哪个文件下添加些代码啊,这样编译的时候才能识别出来,像有些单片机在中断向量表放置一条跳转指令,中断时单片机就能找到我们所编的中断处理程序,<BR>&nbsp;我们的这个S12单片机是怎么识别的呢?</P><P>我对codewarrio 不熟悉,帮帮忙吧,大家谁知道告诉我一下,在写中完中断处理程序时,还需要在哪里添加些代码</P>
作者: whut_wj    时间: 2008-5-18 01:54
标题: Re:关于中断
<><FONT color=#ff0033>都要加这个,是因为程序寻址跳转的问题.</FONT></P><P><FONT color=#ff0033>这段代码写在源文件就可以了</FONT></P>
作者: CCGOGO    时间: 2011-2-22 16:55
哦  也解决了我的一个疑惑  谢谢 嘿嘿




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