This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2530:使电机运行、直到按下 HAL_KEY_SW_1

Guru**** 2540720 points
Other Parts Discussed in Thread: CC2530, Z-STACK

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/565861/cc2530-make-motor-run-until-hal_key_sw_1-is-pressed

器件型号:CC2530
Thread 中讨论的其他器件: Z-stack

您好!

如何对 CC2530进行编程、以使电机在 HAL_KEY_SW_1被抑制之前一直运行。 我有了它、这样我就按下 HAL_KEY_SW_6 (在 HandleKeys 中)来启动电机。 下面是迄今为止我在 SampleLight 中的代码、但 CC2530正在跳过 while 循环。 我的程序应该是说、如果未按下 HAL_KEY_SW_1、则运行电机、直到按下按钮。 为什么它不起作用?

静态空 zclSampleLight_DisplayLight (空)

//根据光设置 LED1 (打开或关闭)
if (zclSampleLight_OnOff =LIGHT_ON 且 NO =0)

while (!HAL_key_sw_1){
DATA_PIN = 0;
正向= 0;
向后= 1;

for (int i=i;<time; i++){ 0
ONBOARD_WAIT (10000);



正向= 0;
向后= 0;
DATA_PIN = 1;

否= 1;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于您在 SW2和 SW7上使用上升沿、我假设您应该替换以下代码:

    如果(P1_7=0)

    键|= HAL_KEY_SW_2;


    如果(P1_6=0)

    键|= HAL_KEY_SW_7;


    使用

    如果(P1_7=1)

    键|= HAL_KEY_SW_2;


    如果(P1_6=1)

    键|= HAL_KEY_SW_7;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    现在、当我按下这些键时、键|= HAL_KEY_SW_2始终会被命中、但这仍然无法解决在按下 HAL_KEY_SW_6时断点达到以下代码的问题。 那么接下来是什么呢?

    if ((键& HAL_KEY_SW_2)||(键& HAL_KEY_SW_7))

    正向= 0;
    向后= 0;
    DATA_PIN = 1;
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您不按 SW2、SW6和 SW7时、您能告诉我 P1.6、P1.7和 P2.0的值是什么?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    每次按下 P2.0或 P1.6时、在观察1视图中、它们都提供值"。 (0x01)一旦命中断点、但当我按键盘上的 F5继续时、断点立即再次命中、并且它们都提供值'\0'(0x00)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    因此、很明显、当我移除||(keys & HAL_key_sw_7)时、问题已得到解决。 我还尝试了一个新程序、正如您在另一篇文章中所说的、但 HAL_KEY_SW_7 ISR 仍未命中。 为什么会这样呢? (在其他帖子中回复此问题)
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否从编译选项中删除了"lcd_supported_debug"?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尝试将原始 SampleLight 与我的 hal_key.c 一起使用、以查看 SW7是否正常工作。