• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

单步调试到这不往下执行?

liuxiaofei126 2018-04-02 浏览量:1434

程序是每1s灯改变状态一次,可以正常运行,定时器1ms中断,count是全局变量,回调函数里count++,在主循环里判断是否到1000(就是1s)但是我单步调试到这里就不往下执行了是怎么回事

1.png

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这并不是不运行了,而是一直在等待time_count达到1000啊。你的主函数就这么一名,肯定一直在判断这一句啊。
    你看你的time_count是0x0001啊,单步的时候定时器也不运行的,time_count的值是不变的。

    • 发布于 2018-04-02
    • 举报
    • 评论 3
    • 0
    • 0
liuxiaofei126 回复了 汉云:这应该很快啊,等几分钟变量也不变啊 回复
汉云 回复了 liuxiaofei126:那应该是定时器并没有启动,没有进到中断中,你定时器配置可能不对。 回复
电子老工程师 回复了 :尾缀包装区别,产品同一物料
回复

其他答案 数量:9
  • 你可以打个断点在 LED_TOGGLE 这里,全速运行看看进去吧。单步得满足条件才进去,要好久。

    或者你单步运行的时候,看上方的 汇编窗口。这种C语言的等待语句,汇编其实好多句,C不走,汇编可以看到在走。

    • 发布于2018-04-02
    • 举报
    • 评论 3
    • 0
    • 0
liuxiaofei126 回复了 我是爆米花啊 :我的定时中断1ms中断一次计数一次,这不是很快嘛 回复
我是爆米花啊 回复了 我是爆米花啊 :单步调试的话 ,定时器也是停止的,单步一次 定时器计数器就加一点。你可以把你使用的那个定时器的CNT计数寄存器在右侧的 观察窗口打开,你就能看到单步的时候CNT寄存器是怎么增加的了。不知道我有没有理解对你的意思 回复
电子老工程师 回复了  :EP1S10F780C7, Intel,参数接近的货都比较少。这个供参考 回复

  • 应该还是在继续执行,要执行判断1000次
    • 发布于2018-04-02
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :MBRD1045CT这个是原厂标准型号,资料没有TR型号 回复

  • 你应该把断点设置在if语句内部,因为一直在判断time_count,你打断点在这后,每次判断time_count都要停,你要手动让他运行,很麻烦。

    貌似IAR可以设置寄存器特定数值停止断点。

    • 发布于2018-04-02
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :同一个型号,书写格式不同。 回复

  • 将time_count放到watch窗口中,看看是否变化;打断点的位置要在判断执行语句里面。
    • 发布于2018-04-02
    • 举报
    • 评论 2
    • 0
    • 0
电子老工程师 回复了  :RT8481AGE Richtek USA Inc. 请参考。 回复
电子老工程师 回复了  :暂无合适替代 回复

  • 断点要设置在if语句里;其次觉得不动,看下time_count的值,如果变化那就说明没死。
    • 发布于2018-04-03
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :ADL5380是系列号不是完整型号 回复

  • 楼主可以设置为>=1000,看看可不可以运行中if中的语句。
    • 发布于2018-04-03
    • 举报
    • 评论 2
    • 0
    • 0
电子老工程师 回复了  :封装: SMD5032-2P 品牌: YXC扬兴科技 型号: X503225MSB2GI,供参考 回复
电子老工程师 回复了  :制造商: CTS-Frequency Controls 制造商产品编号: 445I23E25M00000 回复

  • 这里是要等待,等到count这个值到了1000才会继续执行
    • 发布于2018-04-07
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :是的 回复

  • 这是在执行,直到程序count到1000才会执行其他的,可以跳过这个函数
    • 发布于2018-04-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 楼主试试不要用单步调试看看会不会卡住在这里?一般单步调试进入判断语句的时候会一直执行知道条件不满足,这样子调试效率很低,还不如用printf串口打印的方法进行调试。

    • 发布于2018-04-30
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

单步调试到这不往下执行?