智能车制作

标题: ECT模块 运用代码问题 [打印本页]

作者: sunseven    时间: 2008-11-15 21:07
标题: ECT模块 运用代码问题
<>#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 */<BR>#pragma LINK_INFO DERIVATIVE "mc9s12dg128b" <BR>unsigned char PUlSECOUNT;<BR>void main(void) {<BR>&nbsp; /* put your own code here */</P><P>&nbsp; DDRB=0xFF; //设置portb为输出<BR>&nbsp; PORTB=0xFF;//portb端口的初始值<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //关闭全部中断<BR>&nbsp; TIOS=0x00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置ect通道0的工作方式<BR>&nbsp; TSCR1=0x80;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //定时器使能,正常工作<BR>&nbsp; TSCR2=0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //禁止定时器溢出中断,预分频因子为2<BR>&nbsp; TCTL4=0x02;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //仅仅捕捉下降边沿<BR>&nbsp; TIE=0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //允许ect通道0中断<BR>&nbsp; TFLG1=0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //第0通道中断标志清零<BR>&nbsp;// DLYCT=0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //延迟256个总线时钟<BR>&nbsp; PUlSECOUNT=0x01;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; EnableInterrupts;&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>&nbsp; for(;;) {PORTB=~PUlSECOUNT;} /* wait forever */<BR>&nbsp; /* please make sure that you never leave this function */<BR>}<BR>#pragma CODE_SEG NON_BANKED<BR>void interrupt 8 pause(void) <BR>{<BR>&nbsp;&nbsp; TFLG1=0x01; <BR>&nbsp;&nbsp; if(PUlSECOUNT==0x80) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PORTB=~PUlSECOUNT;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PORTB=0xFF;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUlSECOUNT=0x01;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PORTB=~PUlSECOUNT;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUlSECOUNT&lt;&lt;=1;<BR>}<BR>#pragma CODE_SEG DEFAULT</P><P>出现很奇怪的问题!就是说我用函数发生器输入方波!信号!用ECT模块捕捉下降边沿!通过跑马灯(LED)的原理!通过portb显示结果!</P><P>但是不知道为什么?跑马灯只是走了一趟,第一个走到第8个,之后就显示led灯全灭!然后就没反应了!请大家帮忙看看究竟是哪里除了问题!</P>
作者: sunseven    时间: 2008-11-15 21:31
标题: Re:ECT模块 运用代码问题
<>什么问题呢?</P><P>&nbsp;</P>
作者: whut_wj    时间: 2008-11-16 08:30
标题: Re:ECT模块 运用代码问题
<>#pragma CODE_SEG NON_BANKED<BR>void interrupt 8 pause(void) <BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTB=~PUlSECOUNT;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUlSECOUNT&lt;&lt;=1;&nbsp;&nbsp;</P><P>&nbsp;&nbsp; &nbsp;if( !PUlSECOUNT) <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PUlSECOUNT=0x01;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>}</P><P>你的程序太繁琐了。</P>
作者: biline    时间: 2009-1-24 04:22
标题: Re:ECT模块 运用代码问题
你单步跟踪一下就会发现了实际上进入中断服务程序之后就没出来,我今天也遇到了这种情况,还没解决呢,没法帮你了,只能告诉你原因了,知道怎么解决了请把方法发上来,谢谢
作者: wokao    时间: 2009-9-28 16:57
lz,你说的函数发生器是什么意思啊??
作者: qnbs1    时间: 2010-3-28 10:02
不明白
作者: 似曾相识    时间: 2011-2-20 09:00
XUEXI




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