version qui corrige tous les beugs

Dependents:   Projet_client_serveur EX5 ex10 ex11 ... more

Committer:
slowness
Date:
Tue Nov 08 07:22:34 2016 +0000
Revision:
4:a9e51ac904e2
Parent:
2:ba3449b7e070
Version sans bug

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gr66 1:663cbe5baac4 1 /// @file IHM.h Bibliothéque de classe pour la carte l'IHM de la carte NBoard
gr66 0:cd0f9e8c609b 2 /// @mainpage
gr66 0:cd0f9e8c609b 3 ///
gr66 0:cd0f9e8c609b 4 ///
gr66 0:cd0f9e8c609b 5 ///
gr66 0:cd0f9e8c609b 6 /// @author Gilles Raynaud, IUT Cachan
gr66 0:cd0f9e8c609b 7 ///
gr66 0:cd0f9e8c609b 8 /// @note
gr66 0:cd0f9e8c609b 9 /// History
gr66 1:663cbe5baac4 10 /// v2.00 05/11/2016
gr66 0:cd0f9e8c609b 11 #include "all_includes.h"
gr66 0:cd0f9e8c609b 12 #define SIZE_FIFO 32
gr66 0:cd0f9e8c609b 13 #define MESSAGE_BUFFER_SIZE 20
gr66 0:cd0f9e8c609b 14 #define JOG_MSK_PUSH (1<<2) // valeur renvoyée si le Jog est enfoncé (en position de repos)
gr66 0:cd0f9e8c609b 15 #define JOG_MSK_RIGHT (1<<4) // valeur renvoyée si le Jog est poussé vers la droite (non enfoncé).
gr66 0:cd0f9e8c609b 16 #define JOG_MSK_UP (1<<3) // valeur renvoyée si le Jog est poussé vers le haut (non enfoncé).
gr66 0:cd0f9e8c609b 17 #define JOG_MSK_LEFT (1<<1) // valeur renvoyée si le Jog est poussé vers la gauche (non enfoncé).
gr66 0:cd0f9e8c609b 18 #define JOG_MSK_DOWN 1 // valeur renvoyée si le Jog est poussé vers le bas (non enfoncé).
gr66 0:cd0f9e8c609b 19 //
gr66 0:cd0f9e8c609b 20 ///
gr66 0:cd0f9e8c609b 21 /// Example:
gr66 0:cd0f9e8c609b 22 /// @code
gr66 1:663cbe5baac4 23
gr66 0:cd0f9e8c609b 24 ///#include "IHM.h"
gr66 1:663cbe5baac4 25 ///IHM ihm; //clase IHM
gr66 1:663cbe5baac4 26 ///Serial pc(SERIAL_TX, SERIAL_RX); // I/O terminal PC
gr66 0:cd0f9e8c609b 27 ///int main()
gr66 0:cd0f9e8c609b 28 ///{
gr66 1:663cbe5baac4 29 /// unsigned char codeur=0,jog;
gr66 0:cd0f9e8c609b 30 /// float pi=4*atan(1.0);
gr66 1:663cbe5baac4 31 /// pc.printf("Hello World \n");
gr66 1:663cbe5baac4 32 /// ihm.LCD_clear();
gr66 0:cd0f9e8c609b 33 /// ihm.LCD_printf("Hello World ");
gr66 0:cd0f9e8c609b 34 /// ihm.LCD_gotoxy(1,0);
gr66 1:663cbe5baac4 35 /// ihm.LCD_printf("PI= %f",pi); // test affichage float
gr66 0:cd0f9e8c609b 36 /// ihm.BAR_set(0x3FF);
gr66 0:cd0f9e8c609b 37 /// wait(2);
gr66 0:cd0f9e8c609b 38 /// ihm.BAR_set(0x2AA);
gr66 0:cd0f9e8c609b 39 /// wait(2);
gr66 0:cd0f9e8c609b 40 /// ihm.BAR_set(0x155);
gr66 0:cd0f9e8c609b 41 /// wait(2);
gr66 0:cd0f9e8c609b 42 /// ihm.LCD_clear();
gr66 0:cd0f9e8c609b 43 /// while(1) {
gr66 0:cd0f9e8c609b 44 /// wait(0.1);
gr66 1:663cbe5baac4 45 /// codeur=ihm.COD_read();
gr66 1:663cbe5baac4 46 /// jog=ihm.JOG_read();
gr66 1:663cbe5baac4 47 /// ihm.BAR_set((UINT16)(codeur));
gr66 0:cd0f9e8c609b 48 /// ihm.LCD_gotoxy(0,0);
gr66 1:663cbe5baac4 49 /// ihm.LCD_printf("Jog=%02d",jog);
gr66 0:cd0f9e8c609b 50 /// ihm.LCD_gotoxy(1,0);
gr66 1:663cbe5baac4 51 /// ihm.LCD_printf("Cod=%03d",codeur);
gr66 1:663cbe5baac4 52 /// pc.printf("Jog=%02d Cod=%03d \n",jog,codeur);
gr66 0:cd0f9e8c609b 53 /// }
gr66 0:cd0f9e8c609b 54 ///}
gr66 0:cd0f9e8c609b 55 /// @endcode
gr66 0:cd0f9e8c609b 56 ///
gr66 0:cd0f9e8c609b 57 class IHM
gr66 0:cd0f9e8c609b 58 {
gr66 0:cd0f9e8c609b 59 public:
gr66 1:663cbe5baac4 60 /// Constructeur pour l'IHM de la carte NBoard, placé à l'extérieur du main
gr66 0:cd0f9e8c609b 61 /// Les paramètres peuvent être omis (ils ont tous une valeur par défaut)
gr66 0:cd0f9e8c609b 62 ///
gr66 0:cd0f9e8c609b 63 IHM(PinName CANRx=PA_11, PinName CANTx=PA_12);
gr66 0:cd0f9e8c609b 64 /// commande des 10 leds du bargraph
gr66 0:cd0f9e8c609b 65 ///
gr66 0:cd0f9e8c609b 66 /// Affiche la valeur passée en argument sur le bargraph
gr66 0:cd0f9e8c609b 67 /// @param valeur à afficher sur le bargraph
gr66 0:cd0f9e8c609b 68 /// @returns void
gr66 0:cd0f9e8c609b 69 ///
gr66 0:cd0f9e8c609b 70 void BAR_set(UINT16 valeur);
gr66 0:cd0f9e8c609b 71 /// lecteur du codeur
gr66 0:cd0f9e8c609b 72 ///
gr66 0:cd0f9e8c609b 73 /// Retourne la valeur du codeur (0-255)
gr66 0:cd0f9e8c609b 74 /// @param void
gr66 0:cd0f9e8c609b 75 /// @returns valeur du codeur
gr66 0:cd0f9e8c609b 76 ///
gr66 0:cd0f9e8c609b 77 UINT8 COD_read(void);
gr66 0:cd0f9e8c609b 78 /// positionne le curseur de l'afficheur LCD
gr66 0:cd0f9e8c609b 79 ///
gr66 1:663cbe5baac4 80 /// @param y : ligne (0-1)
gr66 1:663cbe5baac4 81 /// @param x : colonne (0-15)
gr66 0:cd0f9e8c609b 82 /// @returns void
gr66 0:cd0f9e8c609b 83 ///
gr66 1:663cbe5baac4 84 void LCD_gotoxy(UINT8 y,UINT8 x);
gr66 0:cd0f9e8c609b 85
gr66 0:cd0f9e8c609b 86 /// écriture formatée sur l'afficheur LCD
gr66 0:cd0f9e8c609b 87 ///
gr66 0:cd0f9e8c609b 88 /// @param format...
gr66 0:cd0f9e8c609b 89 /// @returns void
gr66 0:cd0f9e8c609b 90 ///
gr66 0:cd0f9e8c609b 91 void LCD_printf(const char* format, ...);
gr66 0:cd0f9e8c609b 92 /// effacement de l'afficheur LCD
gr66 0:cd0f9e8c609b 93 ///
gr66 0:cd0f9e8c609b 94 /// @param void
gr66 0:cd0f9e8c609b 95 /// @returns void
gr66 0:cd0f9e8c609b 96 ///
gr66 0:cd0f9e8c609b 97 void LCD_clear(void);
gr66 0:cd0f9e8c609b 98 /// lecture du JOG
gr66 0:cd0f9e8c609b 99 /// retourne la position (8 possibilités) et l'enfoncement du Jog
gr66 0:cd0f9e8c609b 100 /// @param void
gr66 1:663cbe5baac4 101 /// @returns valeur JOG
gr66 0:cd0f9e8c609b 102 ///
gr66 0:cd0f9e8c609b 103 UINT8 JOG_read(void);
gr66 0:cd0f9e8c609b 104 private:
gr66 0:cd0f9e8c609b 105 int COD_valeur;
gr66 0:cd0f9e8c609b 106 unsigned char JOG_valeur,mise_a_jour_JOG,mise_a_jour_COD;
gr66 0:cd0f9e8c609b 107 unsigned char FIFO_ecriture;
gr66 0:cd0f9e8c609b 108 // CANMessage can_MsgRx[SIZE_FIFO];
gr66 0:cd0f9e8c609b 109 UINT8 curseur;
gr66 0:cd0f9e8c609b 110 UINT8 IHM_is_running;
gr66 0:cd0f9e8c609b 111 CANMessage can_MsgRx[SIZE_FIFO], can_MsgTx;
gr66 0:cd0f9e8c609b 112 //extern unsigned char Reception_CAN;
gr66 0:cd0f9e8c609b 113 CANMessage trame_Tx;
slowness 4:a9e51ac904e2 114 char tableau_ecran[65],tableau_temporaire[200];
gr66 0:cd0f9e8c609b 115 CAN can;
gr66 0:cd0f9e8c609b 116 void can_ISR_Reader(void);
gr66 0:cd0f9e8c609b 117 void CAN_automate_reception(void);
gr66 0:cd0f9e8c609b 118 };