view Small_CPU/Inc/batteryCharger.h @ 901:e4e9acfde839 Evo_2_23

Bugfix simulator/planer: For deco calculation two structures are used. The calculation structure and the input structure. During simulation fast forward (+5min) the input structure is manipulated. Especially for vpm calculation it could happen that the input structure was manipulated and then overwritten by the calculation structure => deco and tts may have wrong values. To avoid this thedeco calculation status is now checked before doing the FF manupulation. Based an calculation state deco or input structures are manipulated. Surface time stamp in planer view: The planer used its own (buggy) implementation for calculation of tts. The timestamp for the surface arrival did not match the bottom time + TTS. The new implementation uses the tts calculated by the deco loop for generation of surface time stamp.
author Ideenmodellierer
date Wed, 02 Oct 2024 22:07:13 +0200
parents d32901746950
children
line wrap: on
line source

/**
  ******************************************************************************
  * @file    batteryCharger.h
  * @author  heinrichs weikamp gmbh
  * @date    09-Dec-2014
  * @version V0.0.1
  * @since   09-Dec-2014
  * @brief	 LTC4054 Standalone Linear Li-Ion Battery Charger 
  *           
  @verbatim                 
  ============================================================================== 
                        ##### How to use #####
  ============================================================================== 
  @endverbatim
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; COPYRIGHT(c) 2015 heinrichs weikamp</center></h2>
  *
  ******************************************************************************
  */ 

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef BATTERY_CHARGER_H
#define BATTERY_CHARGER_H

#ifdef __cplusplus
 extern "C" {
#endif

/* Includes ------------------------------------------------------------------*/
#include <stdint.h>

#define CHARGE_IN_PIN				GPIO_PIN_2
#define CHARGE_IN_GPIO_PORT			GPIOC
#define CHARGE_IN_GPIO_ENABLE()		__GPIOC_CLK_ENABLE()

#define CHARGE_OUT_PIN				GPIO_PIN_1
#define CHARGE_OUT_GPIO_PORT		GPIOC
#define CHARGE_OUT_GPIO_ENABLE()	__GPIOC_CLK_ENABLE()

 typedef enum
 {
 	Charger_NotConnected = 0,		/* This is identified reading CHARGE_IN_PIN == HIGH */
 	Charger_WarmUp,					/* Charging started but counter did not yet reach a certain limit (used to debounce connect / disconnect events to avoid multiple increases of statistic charging cycle counter) */
 	Charger_Active,					/* Charging identified by  CHARGE_IN_PIN == LOW for a certain time */
 	Charger_Finished,
 	Charger_LostConnection,			/* Intermediate state to debounce disconnecting events (including charging error state like over temperature) */
 	Charger_ColdStart,				/* Cold start condition => check if an loaded battery has been inserted */
 	Charger_END
 } chargerState_t;


void init_battery_charger_status(void);
void set_charge_state(chargerState_t newState);
uint8_t get_charge_state(void);
void ReInit_battery_charger_status_pins(void);
void DeInit_battery_charger_status_pins(void);
void battery_charger_get_status_and_contral_battery_gas_gauge(uint8_t cycleTimeBase);

#ifdef __cplusplus
}
#endif

#endif /* BATTERY_CHARGER_H */

/************************ (C) COPYRIGHT heinrichs weikamp *****END OF FILE****/