智能车制作

标题: 请教ECT中16位自由计数器溢出中断问题 [打印本页]

作者: smartjoy    时间: 2008-4-27 23:29
标题: 请教ECT中16位自由计数器溢出中断问题
<>下边是我写的一个16位自由计数器溢出中断的程序,但是不能触发中断,请高手不吝赐教</P><P><FONT color=#3c3cc4>#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 */</FONT></P><P><BR><FONT color=#3c3cc4>#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"</FONT></P><P><FONT color=#3c3cc4>void main(void)<BR>{<BR>&nbsp; DDRB=0xff; // PTB as output <BR>&nbsp; TSCR1 = 0x10; // enable timer TCNT <BR>&nbsp; TSCR2 = 0x07; // TCNT prescaler setup<BR>&nbsp; TIE=0x00;<BR>&nbsp; TIOS=0x00;<BR>&nbsp; PORTB=0xff;&nbsp; // LEDs off <BR>&nbsp;&nbsp; EnableInterrupts;//开中断<BR>&nbsp; for (;;);<BR>}<BR>#pragma CODE_SEG NON_BANKED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>void interrupt 16 TCNT_ISR(void)</FONT></P><P><FONT color=#3c3cc4>{<BR>&nbsp;DisableInterrupts;&nbsp; //关中断&nbsp;<BR>&nbsp;&nbsp;PORTB++;//PORTB自增<BR>&nbsp;EnableInterrupts<BR>}</FONT>&nbsp; </P>
作者: smartjoy    时间: 2008-4-28 05:41
标题: Re:请教ECT中16位自由计数器溢出中断问题
<>已解决</P><P><FONT color=#2b2bd5>void main(void)<BR>{<BR>&nbsp; DDRB=0xff; // PTB as output <BR>&nbsp; TSCR1 = 0x80; // enable timer TCNT <BR>&nbsp; TSCR2 = 0x87; // TCNT prescaler setup<BR>&nbsp; PORTB=0xff;&nbsp; // LEDs off <BR>&nbsp;&nbsp; EnableInterrupts;//开中断<BR>&nbsp; for (;;) {<BR>&nbsp; }<BR>}<BR>#pragma CODE_SEG NON_BANKED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>void interrupt 16 TCNT_ISR(void)</FONT></P><P><FONT color=#2b2bd5>{<BR>&nbsp;DisableInterrupts;&nbsp; //关中断&nbsp;<BR>&nbsp;PORTB++;//PORTB自增<BR>&nbsp;TFLG2=0x80;<BR>&nbsp;EnableInterrupts<BR>}&nbsp; </FONT></P>
作者: auto    时间: 2008-4-29 18:24
标题: Re:请教ECT中16位自由计数器溢出中断问题
<>我的BLOG上应该是有ECT的程序的,</P><P><A target=_blank href="http://blog.eccn.com/u/107300/index.htm">http://blog.eccn.com/u/107300/index.htm</A></P>
作者: riyakiss    时间: 2009-5-8 19:39
我现在就在弄这一块,遇到了跟你个一摸一样的问题,看了你的程序收了启发,现在解决了,致敬!
我的问题是中断程序中漏掉了TFLG2=0x80;结果导致中断无法继续执行。只能进一次中断,灯亮一次后,就不能在继续执行了。

我的代码如下:

#include<hidef.h>
#include<mc9s12dg128.h>

void main(void)
{
  DDRB=0xff; // PTB as output
  TSCR1 = 0x80; // enable timer TCNT
  TSCR2 = 0x87; // TCNT prescaler setup
  PORTB=0xff;  // LEDs off
   
  EnableInterrupts;//
  for (;;);
}

                     
void interrupt TCNT_ISR(void)
{
DisableInterrupts;
PORTB = ~PORTB;
TFLG2=0x80;
EnableInterrupts
}
作者: guoshunkai521    时间: 2012-4-14 20:38
对不上号!
作者: guoshunkai521    时间: 2012-4-14 20:38
对不上号!

补充内容 (2012-4-16 20:35):
当时没看懂。
作者: hahah    时间: 2013-1-17 15:54
你好,你的问题解决了么?我也遇到类似的问题。尚未解决啊。。
这个文章里面也写了类似的问题。





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