查看: 2874|回复: 3

超级诡异问题!!!断电重启后PWM不工作

[复制链接]

该用户从未签到

发表于 2015-12-20 12:40:04 | 显示全部楼层 |阅读模式
分享到:
今天碰到51822的一个奇怪的问题。
用了官方github提供的“nrf_pwm_noglitch.c" 的库生成PWM脉冲,设了一个
“static void timer_handler” 来每隔14毫秒更新一下脉冲宽度。
用Keil里面的Download code to flash memory的话可以脉冲可以正常变化。

但是特别奇怪的,如果把板子的电池拔掉后再插回去开机,脉冲的宽度就开始随机跳跃,不是按照timer设置的值变化了(但PWM还是在输出,只是宽度不对)

而且如果用nRFgo Studio里面的development board来下载hex文件,也出来同样问题,而且不用拔下电池,下载完运行就是有问题的。

另外如果不断开电池,在Keil下载代码后正常运行的情况下,用nRFgo Studio里面读取Program Application的hex保存到电脑,然后PWM就不正常了,不需要断开电池。

唯一让PWM正常工作的办法就是重新用Keil自带的Download来下载或只要开始debug(不需要再下载)就能恢复正常,而且之后就不能断开电池,否则就无法正常工作。

这到底是为什么?哪里内存布局设置的不一样的结果吗?Keil运行启动有干什么特殊的事情吗?

芯片是51822_qfAA,Keil里面的target设置
IROM1:0x18000, size: 0x28000
IRAM1:0x20002000, size:0x2000

Debug里面Flash Download设置是
Erase Full Chip
Program
Verify
Reset and Run
Ram for Algorithm是start: 0x20002000 size: 0x2000

求大神指点一下 这个bug到底怎么回事?
回复

使用道具 举报

该用户从未签到

发表于 2015-12-23 09:44:40 | 显示全部楼层
以前我调stm32也遇到过,我最后是更换了函数执行顺序解决的,把io配置和定时器配置写在pwm函数里面,不知道对你是否有帮助
回复 支持 反对

使用道具 举报

  • TA的每日心情

    2013-7-15 15:41
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2015-12-28 19:51:51 | 显示全部楼层
    你好,楼主,我也遇到这个问题,用Keil下载到板子,不断电,PWM输出正常,但是只要重新上电运行,PWM就不对了,只输出个方波,没有按照设置的PWM脉冲变化输出

    大神,到底是哪里出问题了呢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-7-19 13:45
  • 签到天数: 53 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2015-12-29 10:03:01 | 显示全部楼层
    mzcry 发表于 2015-12-28 19:51
    你好,楼主,我也遇到这个问题,用Keil下载到板子,不断电,PWM输出正常,但是只要重新上电运行,PWM就不对 ...

    请使用www.juma.io网站的SDK做你的PWM试试
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

    手机版|小黑屋|与非网

    GMT+8, 2024-4-25 08:42 , Processed in 0.146211 second(s), 21 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.