#include "tdd_joystick.h"
static OPERATE_RET app_joystick_register(void)
{
JOYSTICK_GPIO_CFG_T hw = {
.btn_pin = TUYA_GPIO_NUM_12,
.level = TUYA_GPIO_LEVEL_LOW,
.pin_type.gpio_pull = TUYA_GPIO_PULLUP,
.adc_num = TUYA_ADC_NUM_0,
.adc_ch_x = 0,
.adc_ch_y = 1,
.adc_cfg = {
.ch_list.data = (1 << 0) | (1 << 1),
.ch_nums = 2,
.width = 12,
.mode = TUYA_ADC_CONTINUOUS,
.type = TUYA_ADC_INNER_SAMPLE_VOL,
},
};
return tdd_joystick_register(JOYSTICK_NAME, &hw);
}
#include "tal_api.h"
#include "tkl_output.h"
#include "tdl_joystick_manage.h"
static TDL_JOYSTICK_HANDLE s_js_hdl = NULL;
static void app_joystick_cb(char *name, TDL_JOYSTICK_TOUCH_EVENT_E event, void *argc)
{
switch (event) {
case TDL_JOYSTICK_UP: PR_NOTICE("up"); break;
case TDL_JOYSTICK_DOWN: PR_NOTICE("down"); break;
case TDL_JOYSTICK_LEFT: PR_NOTICE("left"); break;
case TDL_JOYSTICK_RIGHT: PR_NOTICE("right"); break;
case TDL_JOYSTICK_BUTTON_PRESS_SINGLE_CLICK: PR_NOTICE("click"); break;
default: break;
}
}
void app_joystick_init(void)
{
app_joystick_register();
TDL_JOYSTICK_CFG_T cfg = {
.button_cfg = {
.long_start_valid_time = 3000,
.long_keep_timer = 1000,
.button_debounce_time = 50,
.button_repeat_valid_count = 2,
.button_repeat_valid_time = 50,
},
.adc_cfg = {
.adc_max_val = 8192,
.adc_min_val = 0,
.normalized_range = 10,
.sensitivity = 2,
},
};
if (OPRT_OK != tdl_joystick_create(JOYSTICK_NAME, &cfg, &s_js_hdl)) {
PR_ERR("joystick create failed");
return;
}
tdl_joystick_event_register(s_js_hdl, TDL_JOYSTICK_UP, app_joystick_cb);
tdl_joystick_event_register(s_js_hdl, TDL_JOYSTICK_DOWN, app_joystick_cb);
tdl_joystick_event_register(s_js_hdl, TDL_JOYSTICK_LEFT, app_joystick_cb);
tdl_joystick_event_register(s_js_hdl, TDL_JOYSTICK_RIGHT, app_joystick_cb);
tdl_joystick_event_register(s_js_hdl, TDL_JOYSTICK_BUTTON_PRESS_SINGLE_CLICK, app_joystick_cb);
}
void app_joystick_read(void)
{
int x = 0, y = 0;
tdl_joystick_calibrated_xy(s_js_hdl, &x, &y);
PR_DEBUG("joystick x=%d y=%d", x, y);
}