106 lines
3 KiB
C
106 lines
3 KiB
C
/**
|
|
******************************************************************************
|
|
* @file system_dumby.h
|
|
* @author Lucien Senaneuch
|
|
* @version V1.0
|
|
* @date 19-June-2017
|
|
* @brief Configure les variables globals, les timers necessaires.
|
|
*
|
|
* Configure la pin de shutdown.
|
|
* Initialise le systick.
|
|
* Initialise les valeurs de shutdown avec le watchdog.
|
|
* Initialise les variables global des commandes.
|
|
* Initialise la strucutre Settings contenant les paramètres de dumber.
|
|
*
|
|
*@note Les différentes commande sont :
|
|
* PingCMD 'p'
|
|
* ResetCMD 'r'
|
|
* SetMotorCMD 'm'
|
|
* StartWWatchDogCMD 'W'
|
|
* ResetWatchdogCMD 'w'
|
|
* GetBatteryVoltageCMD 'v'
|
|
* GetVersionCMD 'V'
|
|
* StartWithoutWatchCMD 'u'
|
|
* MoveCMD 'M'
|
|
* TurnCMD 'T'
|
|
* BusyStateCMD 'b'
|
|
******************************************************************************
|
|
******************************************************************************
|
|
*/
|
|
#ifndef _SYSTEM_DUMBY_H_
|
|
#define _SYSTEM_DUMBY_H_
|
|
|
|
#include "stm32f10x.h"
|
|
|
|
/* Déclaration des Constantes */
|
|
#define VERSION "version 1.4\r"
|
|
|
|
#define SPI 10
|
|
#define USART 20
|
|
#define I2C 30
|
|
|
|
#define TRUE 40
|
|
#define FALSE 50
|
|
|
|
#define VOLTAGE 98
|
|
#define CURRENT 99
|
|
|
|
#define UNDEFINED 101
|
|
|
|
#define TIMER_1s 1000 // 1 sec
|
|
//#define TIMER_Watchdog 3050
|
|
//#define TTMER_Inactivity 120000 // 2 min
|
|
|
|
#define WATCHDOG_MIN 970
|
|
#define WATCHDOG_MAX 1030
|
|
#define WATCHDOG_INVALID_COUNTER_MAX 3
|
|
|
|
#define COMMONSPEED 5
|
|
#define LOWSPEED 2
|
|
#define HYPERVITESSE 7
|
|
|
|
/* Déclaration de structure */
|
|
|
|
enum States {
|
|
STATE_IDLE = 0,
|
|
STATE_RUN,
|
|
STATE_LOW,
|
|
STATE_DISABLE,
|
|
STATE_WATCHDOG_DISABLE
|
|
};
|
|
typedef enum States States;
|
|
|
|
struct Settings
|
|
{
|
|
// Information
|
|
uint16_t BatteryPercentage; // Retourne le pourcentage de charge de la batterie
|
|
uint16_t BatteryCurrent; //
|
|
States StateSystem; // État de la MAE
|
|
char AddOn; // Un AddOn a été détecté
|
|
// Les instructions seront sur le protocole SPI
|
|
char BatterieChecking; // On doit vérifier la valeur de la batterie
|
|
uint16_t cpt_systick;
|
|
char WatchDogStartEnable; // Le Robot a été lancé en mode WithWatchDog ou WithoutWatchDog
|
|
uint16_t cpt_watchdog;
|
|
uint8_t InvalidWatchdogResetCpt; // Compteur de remise à zéro du watchdog en dehors du temps imparti
|
|
char busyState;
|
|
int cpt_inactivity;
|
|
char acquisition;
|
|
char stateBattery;
|
|
char flagSystick;
|
|
};
|
|
|
|
typedef struct Settings Settings;
|
|
|
|
/* Déclaration des variables systèmes */
|
|
extern Settings Dumber;
|
|
|
|
/* Prototype Fonctions */
|
|
void systemConfigure(void);
|
|
void systemChangeState(States state);
|
|
char systemResetWatchdog(void);
|
|
void systemShutDown(void);
|
|
|
|
#endif /* _SYSTEM_DUMBY_H_ */
|
|
|
|
|