查看: 3217|回复: 16

[求助] 来来来,看看我这段代码的问题所在

[复制链接]
  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
    发表于 2015-4-23 16:39:01 | 显示全部楼层 |阅读模式
    本帖最后由 cxtarm 于 2015-4-23 17:46 编辑

    float f_val = 0.0;

    extern float a,b,c,d;

    void functions_1();
    void functions_2();

    void Func(void) // 运行很频繁
    {
        if(f_val < 1000)
           functions_1();
        else
           functions_2();
    }

    void ISR_Handler(void) // 某个中断函数
    {
        ClearFlag();
       f_val  += (a * b - c)/d;
    }
    我知道答案 目前已有16人回答
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
     楼主| 发表于 2015-4-23 17:42:15 | 显示全部楼层
    哎!!!没人关注么
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 16:14
  • 签到天数: 1442 天

    连续签到: 1 天

    [LV.10]以坛为家III

    17

    主题

    3862

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    8291
    最后登录
    2021-12-10
    发表于 2015-4-23 19:10:52 | 显示全部楼层
    是什么问题呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
     楼主| 发表于 2015-4-24 09:34:20 | 显示全部楼层

    Func() 执行异常
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-12-10 16:14
  • 签到天数: 1442 天

    连续签到: 1 天

    [LV.10]以坛为家III

    17

    主题

    3862

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    8291
    最后登录
    2021-12-10
    发表于 2015-4-24 10:27:25 | 显示全部楼层
    你这个只是程序的片断应该是很难让人了解到问题在那里!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
     楼主| 发表于 2015-4-24 10:38:48 | 显示全部楼层
    slotg 发表于 2015-4-24 10:27
    你这个只是程序的片断应该是很难让人了解到问题在那里!

    这段代码的变量 f_val 有问题
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-20 10:55
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    24

    主题

    1189

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1642
    最后登录
    2022-3-21
    发表于 2015-4-24 13:31:38 | 显示全部楼层
    无法理解! 能否把应用场景说清楚
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
     楼主| 发表于 2015-4-24 13:51:38 | 显示全部楼层
    星星-418393 发表于 2015-4-24 13:31
    无法理解! 能否把应用场景说清楚

    和运行场景无关,两行注释可以说明问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    42

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    250
    最后登录
    2015-12-10
    发表于 2015-4-24 13:55:48 | 显示全部楼层
    高深莫测
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-11-24 10:19
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    50

    主题

    1028

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2870
    最后登录
    1970-1-1
     楼主| 发表于 2015-4-24 14:09:07 | 显示全部楼层
    问题在于我没有对 f_val 变量做保护,导致用户代码读取 f_val 和中断中设置 f_val 时产生冲突,进而if()语句判断错误。当然实际中我使用的并不是浮点型,而是一个比浮点型复杂的自定义数据类型,此处只是作为一个实例。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-25 09:20 , Processed in 0.108920 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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