68 lines
2.1 KiB
C
68 lines
2.1 KiB
C
/*================================================================
|
|
Copyright (c) 2021, Quectel Wireless Solutions Co., Ltd. All rights reserved.
|
|
Quectel Wireless Solutions Proprietary and Confidential.
|
|
=================================================================*/
|
|
|
|
|
|
#include "ql_type.h"
|
|
#include "ql_func.h"
|
|
#include "ql_keypad.h"
|
|
#include "ql_rtos.h"
|
|
#include "ql_application.h"
|
|
#include <stdio.h>
|
|
|
|
static ql_task_t key_padref = NULL;
|
|
static ql_queue_t key_padmsg = NULL;
|
|
static unsigned int test_callback(ql_event_data_t event)
|
|
{
|
|
ql_rtos_queue_release(key_padmsg, sizeof(ql_event_data_t), (unsigned char *)&event, QL_WAIT_FOREVER);
|
|
return 0;
|
|
}
|
|
|
|
static void key_events(void)
|
|
{
|
|
ql_event_data_t key_num = {0};
|
|
while(1){
|
|
ql_rtos_queue_wait(key_padmsg, (unsigned char *)&key_num, sizeof(ql_event_data_t), QL_WAIT_FOREVER);
|
|
|
|
printf("param_01:%d, param_02:%d, param_03:%d -%c*\r\n",key_num.param_01,key_num.param_02,key_num.param_03, key_num.event_id==90?'D':'U');
|
|
printf("============================================\n");
|
|
/*do
|
|
.....
|
|
keypad func*/
|
|
}
|
|
}
|
|
|
|
void keypad_test(void *argv)
|
|
{
|
|
int ret = 0;
|
|
printf("keypad_test start\n");
|
|
int level = 2;
|
|
ql_keypad_Register(test_callback);
|
|
// ql_rtos_task_sleep_s(5);
|
|
|
|
QL_KPAD_MKOUT_E row[QL_KEYPAD_MATRIX_LENGTH]= {QL_KP_OUT2,QL_KP_OUT0, QL_KP_OUT1, QL_KP_OUT3, QL_KP_OUT4,QL_KP_OUT_NO_VALID,
|
|
QL_KP_OUT_NO_VALID,QL_KP_OUT_NO_VALID};
|
|
QL_KPAD_MKIN_E col[QL_KEYPAD_MATRIX_LENGTH] ={QL_KP_IN2,QL_KP_IN0, QL_KP_IN1, QL_KP_IN3,QL_KP_IN4,QL_KP_IN_NO_VALID, QL_KP_IN_NO_VALID,
|
|
QL_KP_IN_NO_VALID};
|
|
ql_keypad_Config(0, 20, row, col);
|
|
|
|
ql_keypad_MultikeyEn(1);
|
|
|
|
printf("DBG======R07==FF==keypad_test \r\n");
|
|
|
|
ret = ql_rtos_queue_create(&key_padmsg, sizeof(ql_event_data_t), 40);
|
|
if(ret){
|
|
printf("ql_rtos_queue_create error \n");
|
|
return;
|
|
}
|
|
|
|
ql_rtos_task_create(&key_padref, 1024, 99, "key_events", key_events, NULL);
|
|
ql_autosleep_enable(1);
|
|
|
|
}
|
|
|
|
//application_init(keypad_test, "keypad_test", 2, 2);
|
|
|
|
|