>最近一直被一个中断问题缠绕着,我用的是codeware4.5版本的。我的中断程序是这样的:</P><P>#include <hidef.h> /* common defines and macros */<BR>#include <mc9s12dg128.h> /* derivative information */<BR>#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"</P><P><BR>static int waittime = 0;<BR>static long i = 0;</P><P> </P><P>static void MDCInit(void){<BR> MCCTL = MCCTL&0Xfb; //模数计数器禁止运行<BR> MCCTL = 0Xe3; //允许中断,模数计数方式 <BR> //返回时重新加载所用的常数,分频常数为16 <BR> MCCTL = MCCTL|0X04; //模数计数器使能<BR> MCCNT = 0X3456; <BR> MCCTL = MCCTL|0X08 ; //把模数常数寄存器的值加载到模数计数器<BR>i= MCCNT; <BR>}</P><P><BR>interrupt void MDC_ISR(void){<BR>DisableInterrupts;<BR> MCFLG = 0x80; //清标志位<BR> waittime++;<BR> if(waittime>=200) waittime=0;<BR> PORTB = waittime;</P><P>}</P><P><BR>void main(void) <BR>{<BR> DisableInterrupts;<BR> DDRB = 0xFF;<BR> PORTB = 0x00;<BR> MDCInit();<BR> for(;;)<BR> {<BR> EnableInterrupts; <BR> }<BR> <BR>}<BR>我的问题是,当程序下载到单片机后,不能全速运行,就是说F5后,程序就不再主程序里运行了,就停了下来,当F10单步执行时在右边的汇编窗口里有指令在执行。单片机复位还是会停止运行。在程序里关掉中断这个问题就不会出现了,可程序就是要用中断的啊。我发现我网上下载的演示工程都是可以运行的,当把人家的main.c拷贝到我的工程下就不能运行了,就是会出现上面那个问题,我初步估计是我简历工程的时候那里出了问题,可我反复的检查,反复新建都不能成功。请高手指点,这个问题都困扰我6天了!!,求求高手指点,小弟万分的感谢!!</P>
><FONT style="BACKGROUND-COLOR: #aedbba">问题已经解决~~哈哈</FONT></P>
>也遇到了这个问题,请问你是怎么解决的呢,谢谢!</P>
>“ 标志位清除不对 ??”</P><P>能否说清楚点,谢谢!</P>
| 欢迎光临 智能车制作 (http://www.znczz.com/) | Powered by Discuz! X3.2 |