FreeCalypso > hg > fc-tourmaline
diff src/cs/drivers/drv_app/kpd/kpd_task.c @ 0:4e78acac3d88
src/{condat,cs,gpf,nucleus}: import from Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:23:26 +0000 |
parents | |
children | 82665effff30 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/kpd/kpd_task.c Fri Oct 16 06:23:26 2020 +0000 @@ -0,0 +1,88 @@ +/** + * @file kpd_task.c + * + * Coding of the main keypad function : kpd_core + * This function loop in the process message function for waiting messages. + * + * @author Laurent Sollier (l-sollier@ti.com) + * @version 0.1 + */ + +/* + * History: + * + * Date Author Modification + * ---------------------------------------- + * 10/10/2001 L Sollier Create + * + * + * (C) Copyright 2001 by Texas Instruments Incorporated, All Rights Reserved + */ + +#include "kpd/kpd_env.h" +#include "kpd/kpd_i.h" + +#include "rv/rv_general.h" +#include "rvf/rvf_api.h" +#include "rvm/rvm_use_id_list.h" + + +/* External declaration until Riviera 1.6 is available*/ +extern T_RV_RET kpd_handle_msg(T_RV_HDR* msg_p); +extern T_RV_RET kpd_handle_timer(UINT8 timer_num); + + + +/** + * @name Functions implementation + * + */ +/*@{*/ + +/** + * function: kpd_core + */ +T_RV_RET kpd_core(void) +{ + BOOLEAN error_occured = FALSE; + T_RV_HDR* msg_p; + UINT16 received_event; + + KPD_SEND_TRACE("KPD: Initialization", RV_TRACE_LEVEL_DEBUG_HIGH); + + /* loop to process messages */ + while (error_occured == FALSE) + { + /* Wait for the necessary events. */ + received_event = rvf_wait ( 0xffff,0); + + if (received_event & RVF_TASK_MBOX_0_EVT_MASK) + { + /* Read the message */ + msg_p = (T_RV_HDR*) rvf_read_mbox( KPD_MAILBOX_USED); + + kpd_handle_msg(msg_p); + } + + if (received_event & RVF_TIMER_0_EVT_MASK) + { + kpd_handle_timer(RVF_TIMER_0); + } + + if (received_event & RVF_TIMER_1_EVT_MASK) + { + kpd_handle_timer(RVF_TIMER_1); + } + if (received_event & RVF_TIMER_2_EVT_MASK) + { + kpd_handle_timer(RVF_TIMER_2); + } + if (received_event & RVF_TIMER_3_EVT_MASK) + { + kpd_handle_timer(RVF_TIMER_3); + } + + } + + return RV_OK; +} \ No newline at end of file