智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5405|回复: 35
打印 上一主题 下一主题

国赛前单片机死机又开始频繁出现

[复制链接]

2

主题

102

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1167
QQ
威望
601
贡献
348
兑换币
389
注册时间
2014-3-17
在线时间
109 小时
毕业学校
中国石油大学(华东)
跳转到指定楼层
1#
发表于 2015-8-21 17:34:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机死机问题目前没有彻底解决。校赛前就已经开始出现间歇死机现象,幸亏比赛两次试跑都没死机逃过一劫。省赛预赛前一天试车又开始出现频繁死机,心想这下完蛋了。幸亏山科离我们学校很近,打的回学校,晚上加紧回实验室各种试,觉得肯定是硬件的问题。我们使用的是数字加速度计MMA8451,有两个供电端口3.3V和VCC_IN,最初我们使用的是前者接3.3V,那天我们尝试用5V接VCC_IN。结果晚上到预赛前试车以及预赛、决赛都没出现死机,以为问题彻底将解决了,有幸进入国赛,特别高兴。现在国赛前不到一周时间,又开始死机,现在正在测试中,不知道原因是啥,快跪了。小伙伴们有没有遇过类似的问题,跪求solution。
回复

使用道具 举报

2

主题

102

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1167
QQ
威望
601
贡献
348
兑换币
389
注册时间
2014-3-17
在线时间
109 小时
毕业学校
中国石油大学(华东)
2#
 楼主| 发表于 2015-8-21 17:40:41 | 只看该作者
la9998372 发表于 2015-8-21 17:38
是不是ACK没有应答呀?

ACK没有应答是因为什么原因呢?加速度计坏了?还是供电不稳啥的。这个我就知道接上用。。。
回复 支持 反对

使用道具 举报

2

主题

102

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1167
QQ
威望
601
贡献
348
兑换币
389
注册时间
2014-3-17
在线时间
109 小时
毕业学校
中国石油大学(华东)
3#
 楼主| 发表于 2015-8-21 17:52:11 | 只看该作者
la9998372 发表于 2015-8-21 17:48
不知道,我之前用MPU6050的时候单片机也经常死机,查了一下原因就是有的时候容易ACK没有应答,死在那里了 ...

哦哦 这样啊 那我也用了数字陀螺仪L3G4200 这个也可能会出现问题 我去试试看 多谢你了
回复 支持 反对

使用道具 举报

2

主题

102

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1167
QQ
威望
601
贡献
348
兑换币
389
注册时间
2014-3-17
在线时间
109 小时
毕业学校
中国石油大学(华东)
4#
 楼主| 发表于 2015-8-21 18:03:14 | 只看该作者
la9998372 发表于 2015-8-21 17:53
不知道,我之前用MPU6050的时候单片机也经常死机,查了一下原因就是有的时候容易ACK没有应答,死在那里了 ...

还有我觉得我这种间歇性的问题,如果是软件原因的话,是不是车子每次就站不起来。我现在车时好时坏,好了,一个月都没问题,不行了,每次发车不出10m,准保持上次转速倒地,而且此时蓝牙也不发数了。我甚至怀疑,时间久了电路板老化了,什么供电不稳啊等等,我瞎猜的。
回复 支持 反对

使用道具 举报

2

主题

102

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1167
QQ
威望
601
贡献
348
兑换币
389
注册时间
2014-3-17
在线时间
109 小时
毕业学校
中国石油大学(华东)
5#
 楼主| 发表于 2015-8-21 20:23:33 | 只看该作者
la9998372 发表于 2015-8-21 19:47
我们之前死机也是间歇性的,时好时坏的,有的时候跑几圈都不死机,点背了一圈都跑不下来。

哦哦 你的是ACK出问题了吗?就是出问题在while里面初始化行的吗?我现在应该没有中断打断它呀 配得中断时间都比它采集时间长 清标志在一开始清 难道要在中断结束时清吗
回复 支持 反对

使用道具 举报

2

主题

102

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1167
QQ
威望
601
贡献
348
兑换币
389
注册时间
2014-3-17
在线时间
109 小时
毕业学校
中国石油大学(华东)
6#
 楼主| 发表于 2015-8-21 21:47:24 | 只看该作者
la9998372 发表于 2015-8-21 19:47
我们之前死机也是间歇性的,时好时坏的,有的时候跑几圈都不死机,点背了一圈都跑不下来。

我发现我程序里的ACK只是在程序初始化里面才有,采集函数里面没有。如果没有应答 就直接return;程序是这个
void i2c_write_reg(I2Cn_e i2cn, uint8 SlaveID, uint8 reg, uint8 Data)
{   
    i2c_Start(i2cn);                                    //发送启动信号
    i2c_write_byte(i2cn, ( SlaveID << 1 ) | MWSR);      //发送从机地址和写位
    i2c_Wait(i2cn);
      if(i2c_IsAsk(i2cn) == 0) return;                  //没有应答
    i2c_write_byte(i2cn, reg);                         //发送从机里的寄存器地址
    i2c_Wait(i2cn);
    i2c_write_byte(i2cn, Data);                         //发送需要写入的数据
    i2c_Wait(i2cn);
    i2c_Stop(i2cn);
    Pause();                                            //延时太短的话,可能写出错
}

你指的ACK没有应答是指没有应答初始化也会成功,但是到后来会影响采集吗?
回复 支持 反对

使用道具 举报

2

主题

102

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1167
QQ
威望
601
贡献
348
兑换币
389
注册时间
2014-3-17
在线时间
109 小时
毕业学校
中国石油大学(华东)
7#
 楼主| 发表于 2015-8-21 21:48:57 | 只看该作者

定时器  它  PIT_Flag_Clear(PIT0);         //清中断标志位

我刚才把它由中断服务函数的开始 放到了最后 也没用,还是会死机

回复 支持 反对

使用道具 举报

2

主题

102

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1167
QQ
威望
601
贡献
348
兑换币
389
注册时间
2014-3-17
在线时间
109 小时
毕业学校
中国石油大学(华东)
8#
 楼主| 发表于 2015-8-21 22:00:51 | 只看该作者

你好 我能加一下你的QQ吗
回复 支持 反对

使用道具 举报

18

主题

694

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8526

活跃会员奖章优秀会员奖章

威望
4770
贡献
1202
兑换币
2431
注册时间
2013-5-15
在线时间
1277 小时
9#
发表于 2015-8-22 17:23:18 | 只看该作者
1.超频了降低频率
2.换模拟i2c
回复 支持 反对

使用道具 举报

18

主题

694

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8526

活跃会员奖章优秀会员奖章

威望
4770
贡献
1202
兑换币
2431
注册时间
2013-5-15
在线时间
1277 小时
10#
发表于 2015-8-22 17:27:37 | 只看该作者
1.超频了降低频率
2.换模拟i2c
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-5 17:34 , Processed in 0.058379 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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