1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/openLuat-luatos-soc-air101

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
luat_touchkey_air101.c 1.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Wendal Chen Отправлено 3 лет назад 9cb6fe1
#include "luat_base.h"
#include "luat_touchkey.h"
#include "luat_msgbus.h"
#include "wm_include.h"
#include "wm_touchsensor.h"
#include "wm_gpio_afsel.h"
#include "wm_io.h"
#include "wm_regs.h"
static enum tls_io_name touchkeymap[] = {
WM_IO_PA_00, // NOP
WM_IO_PA_07, /*touch sensor 1*/
WM_IO_PA_09, /*touch sensor 2*/
WM_IO_PA_10, /*touch sensor 3*/
WM_IO_PB_00, /*touch sensor 4*/
WM_IO_PB_01, /*touch sensor 5*/
WM_IO_PB_02, /*touch sensor 6*/
WM_IO_PB_03, /*touch sensor 7*/
WM_IO_PB_04, /*touch sensor 8*/
WM_IO_PB_05, /*touch sensor 9*/
WM_IO_PB_06, /*touch sensor 10*/
WM_IO_PB_07, /*touch sensor 11*/
WM_IO_PB_08, /*touch sensor 12*/
WM_IO_PB_09, /*touch sensor 13*/
WM_IO_PA_12, /*touch sensor 14*/
WM_IO_PA_14, /*touch sensor 15*/
};
static void luat_touchkey_cb(uint32_t value) {
rtos_msg_t msg;
msg.handler = l_touchkey_handler;
msg.ptr = NULL;
for (uint8_t i = 0; i < 15; i++)
{
if (value&BIT(i))
{
msg.arg1 = i + 1;
msg.arg2 = tls_touchsensor_countnum_get(i+1);
luat_msgbus_put(&msg, 0);
}
}
}
int luat_touchkey_setup(luat_touchkey_conf_t *conf) {
if (conf->id < 1 || conf->id > 15 )
return -1;
wm_touch_sensor_config(touchkeymap[(enum tls_io_name)conf->id]);
tls_touchsensor_init_config(conf->id, conf->scan_period, conf->window, 1);
tls_touchsensor_irq_enable(conf->id);
tls_touchsensor_irq_register(luat_touchkey_cb);
if (conf->threshold)
tls_touchsensor_threshold_config(conf->id, conf->threshold);
return 0;
}
int luat_touchkey_close(uint8_t id) {
if (id < 1 || id > 15 )
return -1;
tls_touchsensor_irq_disable(id);
tls_touchsensor_deinit(id);
return 0;
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/openLuat-luatos-soc-air101.git
git@gitlife.ru:oschina-mirror/openLuat-luatos-soc-air101.git
oschina-mirror
openLuat-luatos-soc-air101
openLuat-luatos-soc-air101
master