MC9S12XDT512写了一个周期中断定时器,中断未产生,请高手指点

[复制链接]
2979|1
 楼主| zhanliana 发表于 2009-5-20 11:09 | 显示全部楼层 |阅读模式
高手请指点,我使用思卡尔单片机MC9S12XDT512写了一个周期中断定时器函数,代码在附件里,请问为什么我在使用full&nbsp;chip&nbsp;simulation时,中断处理程序有用(看到静态变量K是在变化的,PITCNT0也在变化。)<br />但是使用TBDML仿真的时候,程序下载到板子里,PITCNT0是在变化,但K就是不变化,PORTA口的I/O情况也未做改变。<br />参考手册上写着:PIT使能后会使定时器中断清零,我就特别的把中断使能写在定时器开始运行的下面,而且,总中断也放在最下边。就是不明白,请已经调通了程序的高手指点下。谢谢啦。<br />#include&nbsp;&lthidef.h&gt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;common&nbsp;defines&nbsp;and&nbsp;macros&nbsp;*/<br />#include&nbsp;&ltmc9s12xdt512.h&gt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;derivative&nbsp;information&nbsp;*/<br />#pragma&nbsp;LINK_INFO&nbsp;DERIVATIVE&nbsp;&quot;mc9s12xdt512&quot;<br /><br />static&nbsp;int&nbsp;k=0;<br /><br />void&nbsp;main(void)&nbsp;<br />{<br />//&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;i,j;<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;DDRA=0xFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;DDRE=0x04;<br /><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;PITMTLD0=99;&nbsp;//8位定时器重装载寄存器赋值&nbsp;,0.5S<br />&nbsp;&nbsp;PITLD0=1999;//16位定时器重装载寄存器赋值<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;PITMUX=0x00;//复用第0路8位微定时器<br />&nbsp;&nbsp;PITCE=0x01;//&nbsp;16位定时开始运行<br />&nbsp;&nbsp;PITFLT=0x01;<br />&nbsp;&nbsp;PITCFLMT=0x81;//8位定时器装载并开始运行<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;PITINTE=PITINTE&nbsp;|&nbsp;0x01;//容许定时器0中断<br />&nbsp;&nbsp;EnableInterrupts;<br />&nbsp;<br />&nbsp;<br /><br />for(;;)<br />&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;for(i=0;i&lt350;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(j=0;j&lt450;j++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k++;&nbsp;*/<br />&nbsp;//if&nbsp;(PITCNT0%20!=0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(k%2!=0)&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTAB_PA6=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTAB_PA5=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTAB_PA4=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTAB_PA3=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTAB_PA6=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTAB_PA5=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTAB_PA4=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTAB_PA3=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br /><br /><br />&nbsp;void&nbsp;interrupt&nbsp;66&nbsp;&nbsp;&nbsp;Timer0_Out()&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;{//EnableInterrupts;<br />&nbsp;&nbsp;&nbsp;&nbsp;PITCE=0x01;<br />&nbsp;&nbsp;&nbsp;&nbsp;PITTF=0x01;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;k++;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br /><br /><br /><br />https://bbs.21ic.com/upfiles/img/20095/200952011546931.rar<br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/20095/200952011546931.rar'>https://bbs.21ic.com/upfiles/img/20095/200952011546931.rar</a>
ccat 发表于 2009-9-1 15:47 | 显示全部楼层
检查过void interrupt 66   Timer0_Out() 没有, 66 是不是正确?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部