FreeCalypso > hg > fc-magnetite
diff src/cs/drivers/drv_app/pwr/pwr_process.c @ 145:246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 09 Oct 2016 05:59:14 +0000 |
parents | |
children | c93a236e0d50 |
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 Sun Oct 09 05:59:14 2016 +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_defined_swe.h" // for RVM_PWR_SWE + +#ifdef RVM_PWR_SWE + +#include "abb.h" +#include "rvm_use_id_list.h" +#include "rvf_api.h" +#include "pwr_messages_i.h" +#include "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 */ + + +