Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 408d9f35df | |||
| dd0e591b8d |
@@ -1 +1,4 @@
|
||||
simplelink/ble_sdk_2_02_02_25/examples/
|
||||
simplelink/ble_sdk_2_02_02_25/src/common/cc26xx/ccs/
|
||||
simplelink/ble_sdk_2_02_02_25/src/components/npi/src/
|
||||
.vscode
|
||||
|
||||
+85
-2
@@ -40,6 +40,9 @@ enum dev_tool_para_e {
|
||||
DEV_TOOL_SPI = 0x20,
|
||||
DEV_TOOL_I2C = 0x28,
|
||||
DEV_TOOL_GPIO_EDC20_ADC_CH = 0x31,
|
||||
DEV_TOOL_MCP23008_PB = 0x32,
|
||||
DEV_TOOL_MCP23008_PA = 0x33,
|
||||
DEV_TOOL_MCP23008_RD = 0x34,
|
||||
DEV_TOOL_OUT0_WRITE_THROUGH = 0x50,
|
||||
DEV_TOOL_SWITCH_SELECT = 0x60,
|
||||
};
|
||||
@@ -259,7 +262,80 @@ static void dev_tool_switch_select(uint8_t *ins_buf)
|
||||
switch_ctrl(switch_module_number, enable_type);
|
||||
}
|
||||
|
||||
static void dev_tool_mcp23008_pb(uint8_t *ins_buf) //3000FF32
|
||||
{
|
||||
uint8_t *p = ins_buf;
|
||||
|
||||
enum mcp23008_gpio_e pin_n = (enum mcp23008_gpio_e)p[4]; // 0x00~0x07: PBx
|
||||
uint8_t register_n = p[5]; // 0x00:IODIR 0x09:GPIO
|
||||
uint8_t _v = p[6]; // 0:low 1:hogh 0:output 1:input
|
||||
uint8_t re_val = 0;
|
||||
|
||||
if (register_n == 9) { // gpio:high/low
|
||||
chip_MCP23008_set(MCP23008_MODULE_U503, MCP23008_REG_GPIO, pin_n, _v);
|
||||
re_val = chip_MCP23008_rd_reg_stat(MCP23008_MODULE_U503, MCP23008_REG_GPIO);
|
||||
} else if (register_n == 0) { // iodir:input-1/output-0
|
||||
chip_MCP23008_set(MCP23008_MODULE_U503, MCP23008_REG_IODIR, pin_n, _v);
|
||||
re_val = chip_MCP23008_rd_reg_stat(MCP23008_MODULE_U503, MCP23008_REG_IODIR);
|
||||
}
|
||||
|
||||
initCISBuf();
|
||||
cis_buf[0] = 2; //data len
|
||||
cis_buf[1] = DEV_TOOL_MCP23008_PB;
|
||||
memcpy(&cis_buf[2], &re_val, 1);
|
||||
SimpleProfile_SetParameter(BLE_CIS_BUFF_CHAR, BLE_CIS_BUFF_SIZE, cis_buf);
|
||||
}
|
||||
|
||||
static void dev_tool_mcp23008_pa(uint8_t *ins_buf) //3000FF33
|
||||
{
|
||||
uint8_t *p = ins_buf;
|
||||
|
||||
enum mcp23008_gpio_e pin_n = (enum mcp23008_gpio_e)p[4]; // 0x00~0x07: PAx
|
||||
uint8_t register_n = p[5]; // 0x00:IODIR 0x09:GPIO
|
||||
uint8_t _v = p[6]; // 0:low 1:hogh 0:output 1:input
|
||||
uint8_t re_val = 0;
|
||||
|
||||
if (register_n == 9) { // gpio:high/low
|
||||
chip_MCP23008_set(MCP23008_MODULE_U505, MCP23008_REG_GPIO, pin_n, _v);
|
||||
re_val = chip_MCP23008_rd_reg_stat(MCP23008_MODULE_U505, MCP23008_REG_GPIO);
|
||||
} else if (register_n == 0) { // iodir:input-1/output-0
|
||||
chip_MCP23008_set(MCP23008_MODULE_U505, MCP23008_REG_IODIR, pin_n, _v);
|
||||
re_val = chip_MCP23008_rd_reg_stat(MCP23008_MODULE_U505, MCP23008_REG_IODIR);
|
||||
}
|
||||
|
||||
initCISBuf();
|
||||
cis_buf[0] = 2; //data len
|
||||
cis_buf[1] = DEV_TOOL_MCP23008_PA;
|
||||
memcpy(&cis_buf[2], &re_val, 1);
|
||||
SimpleProfile_SetParameter(BLE_CIS_BUFF_CHAR, BLE_CIS_BUFF_SIZE, cis_buf);
|
||||
}
|
||||
|
||||
static void dev_tool_mcp23008_rd(uint8_t *ins_buf) //3000FF34
|
||||
{
|
||||
uint8_t *p = ins_buf;
|
||||
|
||||
uint8_t register_n = p[4]; // 0x00:IODIR 0x09:GPIO
|
||||
uint8_t re_val = 0;
|
||||
|
||||
initCISBuf();
|
||||
cis_buf[0] = 5; //data len
|
||||
cis_buf[1] = DEV_TOOL_MCP23008_RD;
|
||||
|
||||
if (register_n == 9) { // gpio:high/low
|
||||
re_val = chip_MCP23008_rd_reg_stat(MCP23008_MODULE_U505, MCP23008_REG_GPIO);
|
||||
memcpy(&cis_buf[2], &re_val, 1);
|
||||
re_val = chip_MCP23008_rd_reg_stat(MCP23008_MODULE_U503, MCP23008_REG_GPIO);
|
||||
memcpy(&cis_buf[3], &re_val, 1);
|
||||
|
||||
} else if (register_n == 0) { // iodir:input-1/output-0
|
||||
re_val = chip_MCP23008_rd_reg_stat(MCP23008_MODULE_U505, MCP23008_REG_IODIR);
|
||||
memcpy(&cis_buf[2], &re_val, 1);
|
||||
re_val = chip_MCP23008_rd_reg_stat(MCP23008_MODULE_U503, MCP23008_REG_IODIR);
|
||||
memcpy(&cis_buf[3], &re_val, 1);
|
||||
}
|
||||
|
||||
SimpleProfile_SetParameter(BLE_CIS_BUFF_CHAR, BLE_CIS_BUFF_SIZE, cis_buf);
|
||||
}
|
||||
|
||||
static void mode_dev_tool(uint8_t *ins_buf)
|
||||
{
|
||||
@@ -302,8 +378,15 @@ static void mode_dev_tool(uint8_t *ins_buf)
|
||||
case DEV_TOOL_SWITCH_SELECT:
|
||||
dev_tool_switch_select(p);
|
||||
break;
|
||||
|
||||
|
||||
case DEV_TOOL_MCP23008_PB:
|
||||
dev_tool_mcp23008_pb(p);
|
||||
break;
|
||||
case DEV_TOOL_MCP23008_PA:
|
||||
dev_tool_mcp23008_pa(p);
|
||||
break;
|
||||
case DEV_TOOL_MCP23008_RD:
|
||||
dev_tool_mcp23008_rd(p);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user