FreeCalypso > hg > fc-tourmaline
diff src/cs/drivers/drv_app/pwr/pwr_process.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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/pwr/pwr_process.c Fri Oct 16 06:23:26 2020 +0000 @@ -0,0 +1,83 @@ +/*****************************************************************************/ +/* */ +/* Name pwr_process.c */ +/* */ +/* Function this file contains the pwr_process function, used to */ +/* handle messages received in the SPI task mailbox. */ +/* */ +/* Version 0.1 */ +/* */ +/* Date Modification */ +/* ------------------------------------ */ +/* */ +/* Author Candice Bazanegue */ +/* */ +/* (C) Copyright 2000 by Texas Instruments Incorporated, All Rights Reserved */ +/*****************************************************************************/ + +#include "rv/rv_defined_swe.h" // for RVM_PWR_SWE + +#ifdef RVM_PWR_SWE + +#include "abb/abb.h" +#include "rvm/rvm_use_id_list.h" +#include "rvf/rvf_api.h" +#include "pwr/pwr_messages_i.h" +#include "spi/spi_env.h" + + +/******************************************************************************* +** Function pwr_process +** +** Description It is called by the spi task core. +** Messages can be related to ABB interrupt handling, or +** battery charge management. +** +*******************************************************************************/ +void pwr_process(T_RV_HDR * msg_ptr) +{ + void *ptr = NULL; + + if (msg_ptr != NULL) + { + switch (msg_ptr->msg_id) + { + case PWR_SPI_INFO_BATTERY_EVT: + { + /* Battery voltage and charger current */ + if (SPI_GBL_INFO_PTR->is_adc_on == FALSE) + { + /* start the channels conversion */ + ABB_Write_Register_on_page(PAGE0, VBATREG, 0x0000); + } + + /* Callback function */ + if(((T_RV_HDR *)msg_ptr)->callback_func != NULL) + { + ((T_RV_HDR *)msg_ptr)->callback_func(ptr); + } + + rvf_free_buf ((void *) msg_ptr); + + break; + } + + default: + { + /* Unknow message has been received */ + rvf_send_trace("PWR_task : Received an unknown message",38, NULL_PARAM , + RV_TRACE_LEVEL_DEBUG_HIGH, PWR_USE_ID); + + rvf_free_buf ((void *) msg_ptr); + + break; + } + } // end of switch + } // end of if + return; +} + +#endif /* #ifdef RVM_PWR_SWE */ + + +