嗨,对话框的团队,
我有一个用于打开led的四个特征的处理函数。每个特性只能打开一个LED。然而,每个特性都可以打开所有4个led。对于所有四个特征,我都使用了一个处理函数。
a)我应该使用单独的处理器函数吗?
b)有什么方法可以区分我写的数据的特征彼此。
我只是想检查用户输入数据的特征,并相应地打开/关闭led。
我急切地等待着答复。
关键词:
设备:
嗨,对话框的团队,
我有一个用于打开led的四个特征的处理函数。每个特性只能打开一个LED。然而,每个特性都可以打开所有4个led。对于所有四个特征,我都使用了一个处理函数。
a)我应该使用单独的处理器函数吗?
b)有什么方法可以区分我写的数据的特征彼此。
我只是想检查用户输入数据的特征,并相应地打开/关闭led。
我急切地等待着答复。
你好Sam123,
1)您知道您的AD转换器结果寄存器(寄存器称为GP_ADC_RESULT_REG)的值吗?这和你在BlueLoupe看到的不同吗?你读取寄存器与GetWord16,而不是GetWord8/GetByte?
2)编写只需要一个处理函数。例如,如果你打开加速配置文件accel_task.c,可以找到handler函数
静态int gattc_write_cmd_ind_handler.在这里,使用switch - case语句管理不同特征值属性的处理:你好,
我有四个特性可以打开四个不同的led。每个特性都应根据其特性开关LED。然而,每个特性都可以打开/关闭所有4个led。应该有一个开关盒来区分特性,以便对特性1的写入只会打开LED1,而不会打开LED2/LED3/LED4。我不确定开关情况和应该执行的开关情况。我附上了我的处理函数,供你仔细阅读。如何实现switch case语句?
Int sample128_val_ind_handler(ke_msg_id_t const msgid,
Struct sample128_val_ind const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
{
/ /特点1
memcpy (&sample128_my_new param - > val, sizeof (my_new_t));
get_value1 = (* sample128_my_new);
如果(get_value1 = = set_value1)
{
GPIO_SetActive (GPIO_PORT_0 GPIO_PIN_7);
}
其他的
{
GPIO_SetInactive (GPIO_PORT_0 GPIO_PIN_7);
}
/ / 2日写的特点
memcpy (&sample128_my_newer param - > val, sizeof (my_newer_t));
get_value2 = (* sample128_my_newer);
如果(get_value2 = = set_value2)
{
GPIO_SetActive (GPIO_PORT_1 GPIO_PIN_0);
}
其他的
{
GPIO_SetInactive (GPIO_PORT_1 GPIO_PIN_0);
}
/ / 3日写的特点
memcpy (&sample128_my_new3 param - > val, sizeof (my_new_t3));
get_value3 = (* sample128_my_new3);
如果(get_value3 = = set_value3)
{
GPIO_SetActive (GPIO_PORT_1 GPIO_PIN_2);
}
其他的
{
GPIO_SetInactive (GPIO_PORT_1 GPIO_PIN_2);
}
/ / 4日写的特点
memcpy (&sample128_my_newer4 param - > val, sizeof (my_newer_t4));
get_value4 = (* sample128_my_newer4);
如果(get_value4 = = set_value4)
{
GPIO_SetActive (GPIO_PORT_1 GPIO_PIN_3);
}
其他的
{
GPIO_SetInactive (GPIO_PORT_1 GPIO_PIN_3);
}
返回(KE_MSG_CONSUMED);
}