智能车制作

标题: 摄像头k60程序死在 断言 里面 [打印本页]

作者: 牧℡〆风︶ㄣ    时间: 2013-2-1 16:49
标题: 摄像头k60程序死在 断言 里面
本帖最后由 牧℡〆风︶ㄣ 于 2013-2-1 16:54 编辑

不知道怎么回事,程序编译没问题,加了速度闭环PID之后,车子空载一切都是好的(舵机有反应,电机按档给转)
可是放到跑道上之后运行一段时间时候程序就死了.....(舵机没反应,电机以另外一个较高的速度转)
而且是死到断言里面了。。
尤其在车轮停止运行之后程序必死。。
用k60
不知道问题出在哪里,,程序死在断言里面是和什么有关呢?求大神指点

作者: yukunlinykl    时间: 2013-2-1 17:38
你看看断言是断的什么言啊。
作者: exiao    时间: 2013-2-1 17:55
汗一个,什么是断言?
作者: 牧℡〆风︶ㄣ    时间: 2013-2-1 18:49
yukunlinykl 发表于 2013-2-1 17:38
你看看断言是断的什么言啊。

我不知道怎么看啊,就是死了之后停止程序运行,就停在了这里


作者: ~~.枭·}雄~~    时间: 2013-2-1 18:50

作者: 牧℡〆风︶ㄣ    时间: 2013-2-1 18:52
exiao 发表于 2013-2-1 17:55
汗一个,什么是断言?

可以百度一下,具体是什么,怎么用也不太清楚。。

作者: yukunlinykl    时间: 2013-2-1 18:55
你要看程序是从哪里进入这个函数的。
作者: 牧℡〆风︶ㄣ    时间: 2013-2-1 19:03
yukunlinykl 发表于 2013-2-1 18:55
你要看程序是从哪里进入这个函数的。

就是不知道程序从哪里进入这个函数的,单步调试跳不出去啊!

作者: yukunlinykl    时间: 2013-2-1 19:11
牧℡〆风︶ㄣ 发表于 2013-2-1 19:03
就是不知道程序从哪里进入这个函数的,单步调试跳不出去啊!

是死循环,当然跳不出去啦。其实这么写就相当于 exit 。只是单片机没有操作系统,所以写成死循环。

作者: 牧℡〆风︶ㄣ    时间: 2013-2-1 19:18
yukunlinykl 发表于 2013-2-1 19:11
是死循环,当然跳不出去啦。其实这么写就相当于 exit 。只是单片机没有操作系统,所以写成死循环。

那请问可以用什么别的方法检测一下到底是哪里出错了吗?
作者: yukunlinykl    时间: 2013-2-1 19:23
牧℡〆风︶ㄣ 发表于 2013-2-1 19:18
那请问可以用什么别的方法检测一下到底是哪里出错了吗?

自己想办法吧。

作者: 牧℡〆风︶ㄣ    时间: 2013-2-1 19:29
额,好吧

作者: exiao    时间: 2013-2-1 19:42
牧℡〆风︶ㄣ 发表于 2013-2-1 18:52
可以百度一下,具体是什么,怎么用也不太清楚。。

已百度。
编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新启用断言。


作者: 青龙00    时间: 2013-2-1 22:40
想出来告诉我
作者: 光屁屁羞挂你    时间: 2013-2-2 09:08
又看到你了,,,还有这种事,我怎么没遇到过
作者: 牧℡〆风︶ㄣ    时间: 2013-2-2 13:58
光屁屁羞挂你 发表于 2013-2-2 09:08
又看到你了,,,还有这种事,我怎么没遇到过

我也表示很奇怪~!
只能说 {:soso_e105:}程序稀烂了,什么错误都有。





作者: 野火    时间: 2013-2-2 14:49
这种问题,其实很容易解决的……
看看串口打印出来的是啥数据
估计是你的pwm传递进去超过 100% 等
作者: 光屁屁羞挂你    时间: 2013-2-2 16:10
野火 发表于 2013-2-2 14:49
这种问题,其实很容易解决的……
看看串口打印出来的是啥数据
估计是你的pwm传递进去超过 100% 等

关键是不会用你们的串口不是你们的板{:soso_e149:}

作者: xiaopihai1213    时间: 2013-2-8 20:12

作者: TECHGID    时间: 2013-2-8 22:38
俺是来拿奖励的
作者: a3914925    时间: 2013-2-9 13:19

作者: ILLY-Ben    时间: 2013-3-3 17:44
我也是,我觉得在PWM设置的那个子函数里面把判断的语句删除了,,它作用就是判断占空比是不是超出范围了,,,很有可能出现了负值
作者: 牧℡〆风︶ㄣ    时间: 2013-3-21 14:59
ILLY-Ben 发表于 2013-3-3 17:44
我也是,我觉得在PWM设置的那个子函数里面把判断的语句删除了,,它作用就是判断占空比是不是超出范围了,, ...

有程序的截图吗?传一个看看咯!
作者: 牧℡〆风︶ㄣ    时间: 2013-3-21 15:07
光屁屁羞挂你 发表于 2013-2-2 16:10
关键是不会用你们的串口不是你们的板

串口不是一样的吗?还有我前些时看你跑的时候车子会突然间死了,是不是一样的问题呢?

作者: xin99    时间: 2013-3-21 17:31

作者: lianghuihao    时间: 2013-3-21 17:41
我跟楼主有同样的问题,楼主解决没?
作者: 牧℡〆风︶ㄣ    时间: 2013-3-21 17:46
lianghuihao 发表于 2013-3-21 17:41
我跟楼主有同样的问题,楼主解决没?

已经不太记得怎么好的了,不过可以试试用排除法一个个排除程序里面的语句函数
作者: 光屁屁羞挂你    时间: 2013-3-21 22:22
牧℡〆风︶ㄣ 发表于 2013-3-21 15:07
串口不是一样的吗?还有我前些时看你跑的时候车子会突然间死了,是不是一样的问题呢?

不是...

作者: Universe    时间: 2013-3-22 00:43

作者: 皓杰    时间: 2013-3-24 20:47

作者: zhangxxxww    时间: 2013-4-19 20:52
同样的问题,跑着跑着程序就死了,舵机不转了,怎么回事
作者: 牧℡〆风︶ㄣ    时间: 2013-4-20 21:17
zhangxxxww 发表于 2013-4-19 20:52
同样的问题,跑着跑着程序就死了,舵机不转了,怎么回事

上次的问题没有在出现了,目前正在看一本书,里面有涉及到,但是仅仅是一部分,还没有完全的理解!希望有高见的特别是有例程说明的可以加入讨论!


作者: 牧℡〆风︶ㄣ    时间: 2013-4-20 21:17
哦,附件忘记上传了
作者: 牧℡〆风︶ㄣ    时间: 2013-4-21 12:53
断言的作用:
在函数体的“入口处”,对参数的有效性进行检查。
很多程序错误是由非法参数引起的,我们应该充分理解并正确使用“断言”(assert)
来防止此类错误。
希望对大家有帮助
作者: 牧℡〆风︶ㄣ    时间: 2013-4-21 16:08
另外附上一些找到的连接
http://doc.linuxpk.com/56047.html
作者: chwwdnop    时间: 2013-11-12 00:35
你可以连上串口,你的断言错误在那个文件哪一行会在串口上打印出来的
作者: projecta    时间: 2014-3-19 15:00

作者: 我爱小白白    时间: 2016-3-12 14:42
:):)
作者: 13127173361    时间: 2018-5-2 01:37
断言。。




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