智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2911|回复: 5
打印 上一主题 下一主题

程序问题 望帮忙

[复制链接]

0

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
356
威望
245
贡献
57
兑换币
28
注册时间
2009-7-7
在线时间
27 小时
跳转到指定楼层
1#
发表于 2009-10-14 11:50:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chenrunshe_007 于 2009-11-16 17:41 编辑

我的程序单步运行没问题,可是连续运行就不可控,串口中断如上,就是将寄存器的值读出,然后判断,符合条件后调用那几个函数,Start里面是判断字符串,符合的话进入RTI中断开始计时,我就是按这个思路做的,可是出现不可控的情况,不知道是我程序哪里的问题,希望各位前辈指点一下!我已经纠结很久了......
  1. interrupt void SCI1_ISR(void)
  2. {   
  3.    byte iRece,receData;
  4.    receData = SCI1SR1;
  5.    receData = SCI1DRL;
  6.    ReceBuffer[fram_num++] = receData;
  7.    
  8.    if(fram_num == 1){
  9.    if(ReceBuffer[0] != 0x26) fram_num = 0;
  10. }
  11.    else if(fram_num == 2){
  12.    if(ReceBuffer[1] != 0x30) fram_num = 0;
  13. }
  14.   if(fram_num == 3){
  15.    if(ReceBuffer[2] != 0x31) fram_num = 0;
  16.   }
  17.    for(iRece = 3;iRece < 16;iRece++){
  18.       if(ReceBuffer[iRece] == 0x0d){
  19.          fram_num = 0;
  20.          Start();
  21.          Stop();
  22.          Standard();
  23.          Thinner();
  24.          Wash();
  25.       }
  26.    }
  27. }

  28. void Start(void) {
  29.   a=0;
  30.   if(start[a]==ReceBuffer[a]){
  31.     a++;
  32.     if(a == 9){
  33.      count = 0;
  34.      sec = 0;
  35.      min = 0;
  36.      CRGINT = 0x80;
  37.     }
  38.   }
  39. }
复制代码

22

主题

518

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
6442
QQ
威望
943
贡献
5041
兑换币
99
注册时间
2008-2-26
在线时间
229 小时
2#
发表于 2009-10-14 12:09:02 | 只看该作者
1# lhqc212
清中断标志没
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
356
威望
245
贡献
57
兑换币
28
注册时间
2009-7-7
在线时间
27 小时
3#
 楼主| 发表于 2009-10-15 08:09:32 | 只看该作者
清了呀
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
356
威望
245
贡献
57
兑换币
28
注册时间
2009-7-7
在线时间
27 小时
4#
 楼主| 发表于 2009-10-15 08:38:57 | 只看该作者
读SCISR1不是清标志位的么?
回复 支持 反对

使用道具 举报

80

主题

1045

帖子

0

精华

跨届大侠

北京龙邱智能科技有限公司

Rank: 10Rank: 10Rank: 10

积分
10332

论坛元老奖章

QQ
威望
2905
贡献
6151
兑换币
4515
注册时间
2008-6-7
在线时间
638 小时
5#
发表于 2009-10-15 19:29:51 | 只看该作者
void start(void) ---------void main(void)---------没看明白你的程序,最好附上完整的。
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
356
威望
245
贡献
57
兑换币
28
注册时间
2009-7-7
在线时间
27 小时
6#
 楼主| 发表于 2009-10-16 10:47:31 | 只看该作者
5# chiusir
我把程序发来了。。。程序是要通过串口接收数据,然后比较是否与原来设定的字符串相同,再做动作,其他控制都没有问题了,就是没有处理没用的代码,现在就是串口接收中断和判断这边,总是不能很好的控制,而且如果想回发的话也不可以,我用的是232-485串口,真的很纠结~~~~~~~~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-26 23:38 , Processed in 0.068851 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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