/** ****************************************************************************** * @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_ */