我按下按钮时如何通知?

2个帖子/ 0新
最后一篇
okmegi.
离线
最后一次露面:3年11个月前
加入:2016-03-04 06:18
我按下按钮时如何通知?

嗨,我正在开发韩国的设备。

我正在使用DA14580开发套件 - 专业版。
我开发了基于“SDK5,BLE_APP_PERIANTAL示例”的设备

我的设备需要该设备在我按下按钮时将值发送(或通知)到智能手机的功能。
该值由“app_easy_timer(app_peripheral_ctrl_timer_delay,app_adcval1_timer_cb_handler)更新
不是吗?(如果您看到示例,'user_custs1_impl.c',您可以得到它)

我添加了按钮源代码来使用它

user_periph_setup.c ----> letaent_gpio(push_button,gpio_button_port,gpio_button_pin,pid_gpio);
user_periph_setup.c---> gpio_configurepin(gpio_button_port,gpio_button_pin,input_pullup,pid_gpio,false);

user_periph_setup.h ---->
#define gpio_button_port gpio_port_1.
#define gpio_button_pin gpio_pin_1.

user_custs1_impl.c ---->
void app_adcval1_timer_cb_handler()
{
..
......
如果(!gpio_getpinstatus(gpio_getton_port,gpio_button_pin)//按下按钮时,请发送消息(= notify)
{
KE_MSG_SEND(REQ);
}
}
此功能使用“custs1_val_ntf_req:set /更新特征值并触发通知”

你抓住了我的思考吗?

在我更改“app_peripheral_ctrl_timer_delay”之前,它运行良好。

我需要“app_peripheral_ctrl_timer_delay = 1”而不是“100”(< - 默认值)
因为设备需要非常快速地读取从ADC采样的值(尽快)

我更改了延迟值'1'而不是'100',并在DK板上执行程序,然后使用智能手机连接它。
当我在“控制点值”处写'01'时,系统会停止。

调试器指出。

/ **
****************************************************************************************
* @brief包装的平台重置。它将在软件重置之前调用它
*从堆栈发出。可能的原因将包含在错误字段中
* @param [in]错误重置的原因。它将是以下之一:
* reset_no_error,reset_mem_alloc_fail,reset_to_rom,reset_and_load_fw
* @return什么都没有。
****************************************************************************************
* /
void wrap_platform_reset(UINT32_T错误)
{
assert_warning(错误== reset_after_spota_update);//在Spota重置的情况下不要破坏
platform_reset_func(错误);
}

当我使用“app_peripheral_ctrl_timer_delay = 50”时,它运行良好。
当我使用“app_peripheral_ctrl_timer_delay = 30”时,它不太好。
当我按下按钮时,有时系统会停止。t_t ...

我需要最快的ADC采样值,并且我想在推动按钮时通知该值。

我按下按钮时如何发送采样值?
请帮我 !

设备:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨okmegi,

嗨okmegi,

这发生了,因为您生成了可以消耗的更多消息,因此您的堆填满,并调用platform_reset。如果我正确地了解,每次按下按钮都会通过计时器开始向客户端向客户端发送数据。尝试更改(减少)连接间隔以频繁地消耗的通知消息。

谢谢mt_dialog.

主题锁定