51uwb.cn

 找回密码
 立即注册
查看: 4463|回复: 2
打印 上一主题 下一主题

CC2530 修改按键驱动后 偶尔出现LED闪烁无法启动

[复制链接]

22

主题

55

帖子

803

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
803
跳转到指定楼层
楼主
发表于 2017-11-19 15:08:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现象描述: 上午测试两个模块+两个底板正常,下午修改按键驱动后,突然有个模块+底板出现偶尔LED1 闪烁无法启动

解决思路:第一步考虑供电,因为电池供电考虑是否电压太低,低电压报警,换供电方式后发现问题依然存在。
               第二步在线debug,看是否板载初始化无法完成,单步执行Main函数,发现可以执行到 osal_start_system(); 然后F5以后才开始LED闪烁,说明问题应该和逻辑有关。
               第三步ZDO部分的debug,在下面的部分下载断点              
  1. // Start the device?
  2.   if ( devState != DEV_HOLD )
  3.   {
  4.     ZDOInitDevice( 0 );
  5.   }
  6.   else
  7.   {
  8.     // Blink LED to indicate HOLD_START
  9.     HalLedBlink ( HAL_LED_4, 0, 50, 500 );
  10.   }
复制代码
发现没有执行ZDOInitDevice( 0 ); 问题基本可以确定了,就是这个判断条件的问题,向前追DEV_HOLD,发现是在如下函数里设定的
  1. void ZDAppCheckForHoldKey( void )
  2. {
  3. #if (defined HAL_KEY) && (HAL_KEY == TRUE)
  4.   // Get Keypad directly to see if a HOLD_START is needed.
  5.   // Hold down the SW_BYPASS_START key (see OnBoard.h)
  6.   // while booting to avoid starting up the device.
  7.   if ( HalKeyRead () == SW_BYPASS_START)
  8.   {
  9.     // Change the device state to HOLD on start up
  10.     devState = DEV_HOLD;
  11.   }
  12. #endif // HAL_KEY
  13. }
复制代码
这个的作用就是阻断正常的启动,协议栈之前有个具体使用这个的例子,好久之前看过了。在 ZDApp_Init( uint8 task_id ) 把这个函数的调用注释掉,一切就OK了。

回头看,为何修改了按键驱动就导致出现这个问题,那还需要继续看HalKeyRead ()
  1. uint8 HalKeyRead ( void )
  2. {
  3.   uint8 keys = 0;

  4.   if (HAL_PUSH_BUTTON1())
  5.   {
  6.     keys |= HAL_KEY_SW_6;
  7.   }

  8.   if ((HAL_KEY_JOY_MOVE_PORT & HAL_KEY_JOY_MOVE_BIT))  /* Key is active low */
  9.   {
  10.     keys |= halGetJoyKeyInput();
  11.   }

  12.   return keys;
  13. }
复制代码
可以看到这里有个halGetJoyKeyInput(), 这个是摇杆模拟量读取,因为我们没有摇搞,而且我们的摇杆通路P06 是悬空的,会导致一些不稳定的因素。 终极绝招,将halGetJoyKeyInput()注释掉,一直返回0即可
  1. #define HAL_KEY_JOY_CHN   HAL_ADC_CHANNEL_6
复制代码


回复

使用道具 举报

1

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
沙发
发表于 2022-4-8 19:42:33 | 只看该作者
有问题打赛
回复

使用道具 举报

1

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
板凳
发表于 2022-4-8 19:43:39 | 只看该作者

0

主题       
3

帖子       
8

积分
新手上路

Rank: 1


积分8
沙发
发表于 48 秒前 | 只看该作者
有问题打赛
回复

使用道具 举报

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

本版积分规则

bphero Inc.  

GMT+8, 2024-4-24 05:29 , Processed in 0.012380 second(s), 4 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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