注册 登录
查看: 2344|回复: 28

[K60] 程序总停在while(DWT_CYCCNT < et);

[复制链接]
发表于 2014-3-8 12:10:29 | 显示全部楼层 |阅读模式
程序总停在  while(DWT_CYCCNT < et);  这句话,DWT_CYCCNT的value 为 ERROR 是个什么情况?

本帖被以下淘专辑推荐:

回复

使用道具 举报

发表于 2014-3-22 16:23:39 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-8 12:14
原先我们以为 DWT模块可以比较稳定工作,不过发现不同的jlink和工程设置使用过程中,这个模块会不稳定工作, ...

我也出现了这个问题,按照你说的把1改成0之后又卡在
while( !(SYST_CSR & SysTick_CSR_COUNTFLAG_MASK));   //等待时间到
里面了
回复 支持 1 反对 0

使用道具 举报

发表于 2014-3-8 12:14:04 | 显示全部楼层
原先我们以为 DWT模块可以比较稳定工作,不过发现不同的jlink和工程设置使用过程中,这个模块会不稳定工作,出现卡死的情况,所以不建议用这个模块来作为延时了。

修改方法:
工程的常用配置在工程根目录下\Board\inc\ FIRE_MK60_conf.h
需要修改一下延时的宏定义,默认 开头的#if 1 表示用DWT,把这个1改成 0 即可
  1. /*
  2. * 配置延时函数
  3. */
  4. #if 1                             //这里1改成0,即可取消默认延时为DWT
  5. #include "MK60_DWT.h"            
  6. #define DELAY()         dwt_delay_ms(500)
  7. #define DELAY_MS(ms)    dwt_delay_ms(ms)
  8. #define DELAY_US(us)    dwt_delay_us(us)
  9. #elif   0
  10. #include "MK60_lptmr.h"
  11. #define     DELAY()         lptmr_delay_ms(500)
  12. #define     DELAY_MS(ms)    lptmr_delay_ms(ms)
  13. #define     DELAY_US(us)    lptmr_delay_us(us)
  14. #elif   0
  15. #include "MK60_pit.h"
  16. #define DELAY()         pit_delay_ms(PIT3,500)
  17. #define DELAY_MS(ms)    pit_delay_ms(PIT3,ms)
  18. #define DELAY_US(us)    pit_delay_us(PIT3,us)
  19. #else
  20. #include "MK60_SysTick.h"
  21. #define DELAY()         systick_delay_ms(500)
  22. #define DELAY_MS(ms)    systick_delay_ms(ms)
  23. #define DELAY_US(us)    systick_delay_us(us)
  24. #endif
回复 支持 反对

使用道具 举报

发表于 2014-3-8 12:16:42 | 显示全部楼层
#if 是条件编译,可参考如下帖子:

C中预编译详解 - 软件设计区 - 山外-vcan123论坛 http://www.vcan123.com/forum.php?mod=viewthread&tid=565
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-8 18:07:08 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-8 12:14
原先我们以为 DWT模块可以比较稳定工作,不过发现不同的jlink和工程设置使用过程中,这个模块会不稳定工作, ...

现在总是死在断言失败是怎么回事儿?
回复 支持 反对

使用道具 举报

发表于 2014-3-12 19:03:41 | 显示全部楼层
强烈支持,非常感谢哥们
回复 支持 反对

使用道具 举报

发表于 2014-3-12 19:23:18 | 显示全部楼层
昵称只能七个字 发表于 2014-3-8 18:07
现在总是死在断言失败是怎么回事儿?

有可能超频跑得太快,导致程序跑飞,出现断言失败
回复 支持 反对

使用道具 举报

发表于 2014-3-22 23:25:22 | 显示全部楼层
本帖最后由 dragon 于 2014-3-24 21:31 编辑
山外メ雲ジ 发表于 2014-3-8 12:16
#if 是条件编译,可参考如下帖子:

C中预编译详解 - 软件设计区 - 山外-vcan123论坛 http://www.vcan12 ...

运行程序的时候,一点击那个红色的小手停下来之后,程序就停在

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-3-31 14:27:57 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-8 12:14
原先我们以为 DWT模块可以比较稳定工作,不过发现不同的jlink和工程设置使用过程中,这个模块会不稳定工作, ...

山外哥为什么程序停在了while( !(SYST_CSR & SysTick_CSR_COUNTFLAG_MASK))里了
回复 支持 反对

使用道具 举报

发表于 2014-3-31 14:40:19 | 显示全部楼层
dragon 发表于 2014-3-22 23:25
运行程序的时候,一点击那个红色的小手停下来之后,程序就停在

哥们,你的问题解决了吗,我也遇到了相同问题啊
回复 支持 反对

使用道具 举报

发表于 2014-4-10 15:56:04 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-8 12:14
原先我们以为 DWT模块可以比较稳定工作,不过发现不同的jlink和工程设置使用过程中,这个模块会不稳定工作, ...

今天也遇到这个问题,改成systick延时后程序也卡在下面这个地方

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-4-10 16:08:38 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-8 12:14
原先我们以为 DWT模块可以比较稳定工作,不过发现不同的jlink和工程设置使用过程中,这个模块会不稳定工作, ...

改成PIT延时后也不行。。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-4-16 21:10:23 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-8 12:14
原先我们以为 DWT模块可以比较稳定工作,不过发现不同的jlink和工程设置使用过程中,这个模块会不稳定工作, ...

下面有人说使用system tick 也会卡在某个地方,那要不饶使用PIT?
回复 支持 反对

使用道具 举报

发表于 2014-5-18 18:04:05 | 显示全部楼层
warn00 发表于 2014-4-10 15:56
今天也遇到这个问题,改成systick延时后程序也卡在下面这个地方

哥们儿,你们怎么弄得,我们也卡在这块了!
回复 支持 反对

使用道具 举报

发表于 2014-5-18 18:10:54 | 显示全部楼层
左手年华 发表于 2014-3-31 14:40
哥们,你的问题解决了吗,我也遇到了相同问题啊

哥们,你们的问题解决了吗?我们也遇到同样的问题了!
回复 支持 反对

使用道具 举报

发表于 2014-6-28 22:22:59 | 显示全部楼层
dragon 发表于 2014-3-22 16:23
我也出现了这个问题,按照你说的把1改成0之后又卡在
while( !(SYST_CSR & SysTick_CSR_COUNTFLAG_MASK) ...

我也遇到这个问题了  怎么解决?
回复 支持 反对

使用道具 举报

发表于 2014-7-8 15:42:36 | 显示全部楼层
今天也突然出现这个问题了,求拯救,到底是为什么?
回复 支持 反对

使用道具 举报

发表于 2014-7-8 16:00:39 | 显示全部楼层
503520985 发表于 2014-7-8 15:42
今天也突然出现这个问题了,求拯救,到底是为什么?

解决了,多插了根地线,把了就没有事儿了,就不会出现程序总停在  while(DWT_CYCCNT < et); 但是不知道为什么,求大神解释
回复 支持 反对

使用道具 举报

发表于 2014-7-8 16:01:27 | 显示全部楼层
evaave 发表于 2014-6-28 22:22
我也遇到这个问题了  怎么解决?

解决了,多插了根地线,把了就没有事儿了,就不会出现程序总停在  while(DWT_CYCCNT < et); 但是不知道为什么,求大神解释
回复 支持 反对

使用道具 举报

发表于 2014-11-27 00:21:07 | 显示全部楼层
同样,拔了地线也不好用,不用dwt也会卡在SysTick,求山大解决啊~
回复 支持 反对

使用道具 举报

发表于 2015-8-2 17:59:06 | 显示全部楼层
。。。到底怎么解决啊亲
回复 支持 反对

使用道具 举报

发表于 2015-12-24 20:45:16 | 显示全部楼层
山外メ雲ジ 发表于 2014-3-8 12:14
原先我们以为 DWT模块可以比较稳定工作,不过发现不同的jlink和工程设置使用过程中,这个模块会不稳定工作 ...

山外哥,我用FN的库,只要定义个float变量,程序就卡住了,while()这里 ,LED灯也在闪
回复 支持 反对

使用道具 举报

发表于 2015-12-24 20:46:07 | 显示全部楼层
zouzhewei 发表于 2015-12-24 20:45
山外哥,我用FN的库,只要定义个float变量,程序就卡住了,while()这里 ,LED灯也在闪

参考这代码,在代码中加入一句话:
K60的FX,开启硬件浮点后,浮点性能是DN的 5倍多 - 智能车资料区 - 山外论坛 http://www.vcan123.com/forum.php ... tid=6545&ctid=1
回复 支持 反对

使用道具 举报

发表于 2015-12-24 20:47:20 | 显示全部楼层
山外メ雲ジ 发表于 2015-12-24 20:46
参考这代码,在代码中加入一句话:
K60的FX,开启硬件浮点后,浮点性能是DN的 5倍多 - 智能车资料区 -  ...

  • #if   MK60F15

  •     SCB->CPACR |=((3UL << 10*2)|(3UL << 11*2));     /* set CP10 and CP11 Full Access */

  • #endif  
  • 这个吗


回复 支持 反对

使用道具 举报

发表于 2015-12-24 20:49:22 | 显示全部楼层

是的,加到 start 函数
回复 支持 反对

使用道具 举报

发表于 2015-12-24 20:54:44 | 显示全部楼层
山外メ雲ジ 发表于 2015-12-24 20:49
是的,加到 start 函数

搞定,谢山外哥
回复 支持 反对

使用道具 举报

发表于 2015-12-24 20:57:10 | 显示全部楼层
zouzhewei 发表于 2015-12-24 20:54
搞定,谢山外哥

OK
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-12-29 08:49:07 | 显示全部楼层
while( !(SYST_CSR & SysTick_CSR_COUNTFLAG_MASK));  我的卡在这里,应该怎样解决
回复 支持 反对

使用道具 举报

发表于 2016-11-29 14:04:01 | 显示全部楼层
多检查检查程序吧,可能有BUG.......
回复 支持 反对

使用道具 举报

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

本版积分规则

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