切换案例以区分查理

3个帖子/ 0新
最后一篇
SAM123
离线
最后一次露面:5年7个月前
加入:2015-02-19 05:43
切换案例以区分查理

嗨对话小组,

我对用于打开LED的四个特性有一个处理函数。每个特性只能打开一个LED。但是,每个特征都可以打开所有4个LED。我已经为所有四个特征使用了一个处理函数。
a)我应该使用单独的处理程序功能吗?
b)有没有办法差异化我在彼此中以特征写作的数据。
我只想检查,其中用户输入数据并相应地打开/关闭LED。

我急切地等待回复。

设备:
vesan.
离线
最后一次露面:5年4个月前
格鲁鲁 主
加入:2014-06-26 08:49
你好Sam123,

你好Sam123,

1)您知道AD转换器结果寄存器的值(寄存器名为GP_ADC_RESULT_REG)吗?它与Blueloupe中看到的不同吗?你用getword16阅读了寄存器,不是getword8 / getbyte?

2)您只需要一个处理函数来写入。例如,如果您打开加速配置文件Accel_Task.C.,您可以找到处理程序功能static int gattc_write_cmd_ind_handler.。使用Switch管理不同特征值属性的处理---案例语句:


切换(Accel_IDX(Param->句柄))
{
case accel_idx_enable_val:...
案例Accel_IDX_ACCEL_DISPLAY1_VAL:
案例Accel_IDX_ACCEL_DISPLAY2_VAL:
......

SAM123
离线
最后一次露面:5年7个月前
加入:2015-02-19 05:43
嗨,

嗨,

我有四个特性,应打开四种不同的LED。每个特性应切换分配给其特性的LED。然而,每个特性都可以开启/关闭所有4个LED。应该有一个切换案例来区分特性,使得写入特性1仅打开LED1而不是LED2 / LED3 / LED4。我不确定了应实施的切换条件和开关案例。我正在附加我的处理函数,让您的善意。如何实现Switch Case语句?

msgstmm msgid,lame msgid sample128_val_ind_handler(Ke_msg_id_t const
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);
if(get_value1 == set_value1)
{
gpio_setactive(gpio_port_0,gpio_pin_7);
}
其他
{
gpio_setinactive(gpio_port_0,gpio_pin_7);
}

// 2nd写知特征
memcpy(&sample128_my_newer,&param-> val,sizeof(my_newer_t));
get_value2 =(* sample128_my_newer);
if(get_value2 == set_value2)
{
gpio_setactive(gpio_port_1,gpio_pin_0);
}
其他
{
gpio_setinactive(gpio_port_1,gpio_pin_0);
}

// 3rd写知
memcpy(&sample128_my_new3,&param-> val,sizeof(my_new_t3));
get_value3 =(* sample128_my_new3);
if(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);
if(get_value4 == set_value4)
{
gpio_setactive(gpio_port_1,gpio_pin_3);
}
其他
{
gpio_setinactive(gpio_port_1,gpio_pin_3);
}

return(ke_msg_consumed);
}