lzh电子论坛

欢迎来到lzh电子论坛:
如果您对电子技术感兴趣就加入我们吧!在这里互相交流互相学习!主要讨论的方向有:单片机,ARM,PCB板设计,FPGA,汇编,C/C++等方面。
-----lzh电子论坛
lzhbbs.top-me.com
lzh电子论坛

电子的道路是孤独的,要懂得左手温暖右手,要懂得把debug当作快乐去欣赏,去享受,那样你才会成功...

欢迎访问lzh电子论坛。可通过【谷歌,SOSO,搜狗】搜索“lzh电子论坛”直接进入论坛。点击了解论坛详细制度


    为什么有些函数没有被执行就直接跳过去

    分享
    avatar
    滴迪
    初级会员
    初级会员

    帖子数 : 18
    威望 : 0
    注册日期 : 13-01-16
    地点 : 湖北理工学院

    为什么有些函数没有被执行就直接跳过去

    帖子 由 滴迪 于 2013-05-18, 11:31 pm

    kile调试的时候发现有些函数没有被执行就直接跳过去,这是为什么???????????
    avatar
    Admin
    管理员
    管理员

    帖子数 : 869
    威望 : 15
    注册日期 : 12-11-23
    年龄 : 25

    回复: 为什么有些函数没有被执行就直接跳过去

    帖子 由 Admin 于 2013-05-19, 12:45 am

    滴迪 写道::kile调试的时候发现有些函数没有被执行就直接跳过去,这是为什么???????????


    keil打错了哦,亲!你用什么调试的啊,吧被跳过的代码贴上来看看
    avatar
    滴迪
    初级会员
    初级会员

    帖子数 : 18
    威望 : 0
    注册日期 : 13-01-16
    地点 : 湖北理工学院

    .......................

    帖子 由 滴迪 于 2013-05-19, 12:50 am

    解决了,延时就行了
    avatar
    Admin
    管理员
    管理员

    帖子数 : 869
    威望 : 15
    注册日期 : 12-11-23
    年龄 : 25

    回复: 为什么有些函数没有被执行就直接跳过去

    帖子 由 Admin 于 2013-05-19, 1:00 am

    滴迪 写道::解决了,延时就行了

    不错额,,呵呵,还是拿出来分享一下吧,如果下次有人遇到可以直接来解决


    _________________
    电子的道路是孤独的,要懂得左手温暖右手,要懂得把debug当作快乐去欣赏,去享受,那样你才会成功...
    avatar
    mcusb
    中级会员
    中级会员

    帖子数 : 46
    威望 : 3
    注册日期 : 13-01-28

    回复: 为什么有些函数没有被执行就直接跳过去

    帖子 由 mcusb 于 2013-05-19, 2:18 am

    楼主是什么问题额,用keil怎么调试啊
    avatar
    滴迪
    初级会员
    初级会员

    帖子数 : 18
    威望 : 0
    注册日期 : 13-01-16
    地点 : 湖北理工学院

    关于某些函数语句直接跳过去的问题

    帖子 由 滴迪 于 2013-05-19, 11:00 am

    昨天是这么个情况:………………Des[0] = i; Des[1] = j;……………………我的程序里面有很多像这样不断刷新赋值的语句,调试的时候发现有的可以顺利执行,可有的直接跳过。刚开始我把他们调换顺序Des[1] = j;Des[0] = i;便可以执行了,但其他的又直接跳过去了。昨天我在后面加了一个延迟函数Des[0] = i; Des[1] = j;delay(10);所有的便都被顺利执行

    我猜测是:如果多次给同一个数组刷新赋值便会出现这种直接跳过某些语句的情况(难道是反应不过来),在赋值后面加个延时语句就行了。更有趣的是:加了延时之后还是跳过赋值语句直接走到延时语句,但又跳回来去执行赋值语句,给人的感觉就像是程序在休息的时候去执行他来不及执行的语句
    avatar
    Admin
    管理员
    管理员

    帖子数 : 869
    威望 : 15
    注册日期 : 12-11-23
    年龄 : 25

    回复: 为什么有些函数没有被执行就直接跳过去

    帖子 由 Admin 于 2013-05-19, 12:40 pm

    滴迪 写道::昨天是这么个情况:………………Des[0] = i; Des[1] = j;……………………我的程序里面有很多像这样不断刷新赋值的语句,调试的时候发现有的可以顺利执行,可有的直接跳过。刚开始我把他们调换顺序Des[1] = j;Des[0] = i;便可以执行了,但其他的又直接跳过去了。昨天我在后面加了一个延迟函数Des[0] = i; Des[1] = j;delay(10);所有的便都被顺利执行

    我猜测是:如果多次给同一个数组刷新赋值便会出现这种直接跳过某些语句的情况(难道是反应不过来),在赋值后面加个延时语句就行了。更有趣的是:加了延时之后还是跳过赋值语句直接走到延时语句,但又跳回来去执行赋值语句,给人的感觉就像是程序在休息的时候去执行他来不及执行的语句

    应该不是吧,是不是连续赋值,编译器将代码优化后中间有些部分被省了!!你在定义的变量前加volatile试试!可以看看这个帖子http://lzhbbs.longluntan.net/t128-topic看超哥回复的。 Idea


    _________________
    电子的道路是孤独的,要懂得左手温暖右手,要懂得把debug当作快乐去欣赏,去享受,那样你才会成功...
    avatar
    aiMM
    中级会员
    中级会员

    帖子数 : 46
    威望 : 0
    注册日期 : 13-05-06

    回复: 为什么有些函数没有被执行就直接跳过去

    帖子 由 aiMM 于 2013-05-19, 1:09 pm

    楼主分析的应该不是的,在延时的时候去做其他的事应该属于操作系统了吧
    avatar
    滴迪
    初级会员
    初级会员

    帖子数 : 18
    威望 : 0
    注册日期 : 13-01-16
    地点 : 湖北理工学院

    谢谢龙哥超哥所有的哥

    帖子 由 滴迪 于 2013-05-19, 1:29 pm

    看了超哥的回复,跟我遇到的问题很像,是我表述不当

      目前的日期/时间是2018-07-19, 12:36 am