智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3057|回复: 7
打印 上一主题 下一主题

请大侠帮忙!好多人都没能解释,看你的了

[复制链接]

0

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
430
威望
316
贡献
84
兑换币
16
注册时间
2008-3-27
在线时间
15 小时
跳转到指定楼层
1#
发表于 2008-4-29 06:43:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<>捕捉下降沿的问题:<BR>#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>void SciInit()<BR>{<BR>&nbsp; SCI0BDL=52;// (unsigned char)((16000000UL /* OSC freq */ / 2) / 9600 /* baud rate */ / 16 /*factor*/<BR>&nbsp; SCI0CR1=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*normal,no parity*/<BR>&nbsp; SCI0CR2=0X0C;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /*RIE=1,TE=1,RE=1*/<BR>}<BR>/*-------发射端程序----------------------*/<BR>void SciTx(unsigned char text)<BR>{<BR>&nbsp; while (!(SCI0SR1&amp;0x80));&nbsp; /* wait for output buffer empty */<BR>&nbsp; SCI0DRH=0;<BR>&nbsp; SCI0DRL=text;<BR>}<BR>unsigned char PulseCnt;<BR>void main(void)<BR>{<BR>&nbsp; <BR>&nbsp; SciInit();<BR>&nbsp; DDRB=0XFF;<BR>&nbsp; PORTB=0XFF;<BR>&nbsp; asm sei;<BR>&nbsp; TIOS=0X00;<BR>&nbsp; TSCR1=0X80;<BR>&nbsp; TSCR2=0X01;<BR>&nbsp; TCTL4=0X02;<BR>&nbsp; TIE=0X01;<BR>&nbsp; TFLG1=0X01;<BR>&nbsp; //DLYCT=0X03;<BR>&nbsp; PulseCnt=0X00;<BR>&nbsp; <BR>&nbsp; asm cli;<BR>&nbsp;// EnableInterrupts;<BR>&nbsp; for(;;){} //等待中断<BR>}<BR>#pragma CODE_SEG_NEAR_SEG NON_BANKED<BR>&nbsp;<BR>&nbsp;void interrupt IC0_ISR(void) <BR>&nbsp; {<BR>&nbsp;&nbsp; PulseCnt++;<BR>&nbsp;&nbsp; SciTx(PulseCnt);<BR>&nbsp;&nbsp; TFLG1=0X01;<BR>&nbsp;&nbsp; PORTB=~PulseCnt;<BR>&nbsp; }<BR>#pragma CODE_SEG DEFAULT</P><P>这个程序运行到&nbsp;&nbsp; "&nbsp; &nbsp;for(;;){} //等待中断&nbsp;&nbsp;&nbsp;"&nbsp;&nbsp;&nbsp;&nbsp; 就跳出,程序能捕捉到下降沿,但是为什么能跳出来,我就搞不清楚了,问了好多人都没能解释,看高手的了!</P>

489

主题

1691

帖子

1

精华

管理员

网站创始人&站长

Rank: 11Rank: 11Rank: 11Rank: 11

积分
85932

特殊贡献奖章资源大师奖章论坛骨干奖章推广达人奖章优秀版主奖章热心会员奖章论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
56988
贡献
17374
兑换币
13144
注册时间
2007-6-8
在线时间
5785 小时
2#
发表于 2008-4-29 07:57:16 | 只看该作者

Re:请大侠帮忙!好多人都没能解释,看你的了

<>&nbsp;把中断改成这样实验下:</P><P>void interrupt IC0_ISR(void) <BR>&nbsp; {DisableInterrupts;</P><P>TC0=0;<BR>&nbsp;&nbsp; PulseCnt++;<BR>&nbsp;&nbsp; SciTx(PulseCnt);<BR>&nbsp;&nbsp; TFLG1=0X01;<BR>&nbsp;&nbsp; PORTB=~PulseCnt;<BR>&nbsp;EnableInterrupts;</P><P>}</P>
回复 支持 反对

使用道具 举报

0

主题

248

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2327
威望
2305
贡献
22
兑换币
0
注册时间
2008-1-6
在线时间
0 小时
3#
发表于 2008-4-29 18:21:12 | 只看该作者

Re:请大侠帮忙!好多人都没能解释,看你的了

是程序初使化的问题,
回复 支持 反对

使用道具 举报

0

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
430
威望
316
贡献
84
兑换币
16
注册时间
2008-3-27
在线时间
15 小时
4#
 楼主| 发表于 2008-4-29 19:35:46 | 只看该作者

Re:Re:请大侠帮忙!好多人都没能解释,看你的了

谢谢各位的指教,我先试验下,看看成不!
回复 支持 反对

使用道具 举报

0

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
430
威望
316
贡献
84
兑换币
16
注册时间
2008-3-27
在线时间
15 小时
5#
 楼主| 发表于 2008-4-29 23:49:53 | 只看该作者

Re:Re:请大侠帮忙!好多人都没能解释,看你的了

我试验过了,还是不成,还是跳出for{}循环,初始化也没什么问题啊,搞不懂了就!
回复 支持 反对

使用道具 举报

0

主题

294

帖子

1

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
4137

特殊贡献奖章

QQ
威望
2664
贡献
1409
兑换币
35
注册时间
2007-11-22
在线时间
32 小时
6#
发表于 2008-4-30 00:25:48 | 只看该作者

Re:请大侠帮忙!好多人都没能解释,看你的了

你怎么知道它跳出for(;;){} //等待中断&nbsp;了????
回复 支持 反对

使用道具 举报

0

主题

38

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
459
威望
333
贡献
100
兑换币
78
注册时间
2008-4-21
在线时间
13 小时
7#
发表于 2008-5-2 01:12:08 | 只看该作者

Re:请大侠帮忙!好多人都没能解释,看你的了

你是不是单步运行的,单步就会这样,一直运行那个中断程序,还是你的中断向量对了吗?可能是其它问题
回复 支持 反对

使用道具 举报

0

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
430
威望
316
贡献
84
兑换币
16
注册时间
2008-3-27
在线时间
15 小时
8#
 楼主| 发表于 2008-5-3 00:31:13 | 只看该作者

Re:请大侠帮忙!好多人都没能解释,看你的了

谢谢大家的指教,本人已经把程序搞通了!o(∩_∩)o...多谢提醒
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-28 10:45 , Processed in 0.237303 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表