v3
Diff: ihm_L476.h
- Revision:
- 0:244ca2910e55
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ihm_L476.h Thu Oct 31 16:39:52 2019 +0000 @@ -0,0 +1,117 @@ +/// @file IHM_L476.h Bibliothéque de classe pour la carte L476 compatible IHM NBOARD +/// @mainpage +/// +/// +/// +/// @author Bruno LARNAUDIE, IUT Cachan +/// +/// @note +/// History +/// v3.00 31/10/2019 + +#include "mbed.h" +#include "LCD_DISCO_L476VG.h" +#include "stm32l476g_discovery_glass_lcd.h" +#include "lcd.h" + +// +/// +/// Example: +/// @code +/// #include "ihm_L476.h" +/// +/// IHM_L476 ihm; // Déclaration de l'objet lcd permettant d'utiliser l'écran LCD +/// +/// //-------- 2 LED (verte / rouge) seulement sur la Disco L476 (+ bargraph de 4 barres sur le LCD) +/// DigitalOut led_green(PE_8); +/// // Définir ici l'objet led rouge voir sur le board pinout à l'adresse suivante: https://os.mbed.com/platforms/ST-Discovery-L476VG/ +/// +/// //------------- les 5 BP du joystick (attention : celui du milieu est câblé différemment !) +/// DigitalIn central(PA_0, PullNone); // le BP central du joystick a une Res EXTERNE de PullDown (1 si enfoncé) -> PullNone (ou PullDown) +/// // PA_0 ou USER_BUTTON +/// DigitalIn left(PA_1,PullDown); // Pas de res externe (et broche Com à Vcc) sur le schéma des 4 directions du joystick +/// // Définir ici les objets boutons droite, haut et bas de la même facon que pour l'objet gauche +/// // voir sur le board pinout à l'adresse suivante: https://os.mbed.com/platforms/ST-Discovery-L476VG/ +/// +/// int main() +/// { +/// unsigned char compteur=0; +/// +/// ihm.LCD_printf("HELLO "); // affichage sur l'afficheur lcd +/// wait(3); // attente de 3 seconde +/// ihm.LCD_printf("Programme d'exemple de la carte L476"); +/// wait(10); // attente de 10 seconde +/// ihm.LCD_clear(); // efface l'écran +/// +/// while (true) { // boule infinie. Equivalent à: while(1) +/// led_green = !led_green; // change l'état de la led +/// ihm.LCD_printf("%03d:%02xh",compteur,compteur); // Affichage sur le ihm du compteur en décimal et hexa +/// ihm.BAR_set(compteur); // Affichage sur le bargraphe de l'écran +/// wait(1); // attente 1 seconde +/// if (central) +/// compteur=0; // LED s'allume à 1 / BP enfoncé à 1 +/// else +/// compteur++; // incrémente le compteur. Equivalent à: compteur=compteur+1; +/// } +/// } +/// @endcode +/// + +class IHM_L476 +{ +public: + /// Constructeur pour l'IHM de la carte L476, placé à l'extérieur du main + /// + IHM_L476(); + + ~IHM_L476(); + /// commande des 4 leds du bargraph sur le lcd + /// + /// Affiche la valeur passée en argument sur le bargraph + /// @param valeur à afficher sur le bargraph + /// @returns void + /// + void BAR_set(unsigned char valeur); + + /// effacement de l'afficheur LCD + /// + /// @param void + /// @returns void + /// + void LCD_clear(void); + + /// écriture formatée sur l'afficheur LCD + /// si affichage de plus de 6 caractéres + /// alors l'affichage se met en mode défilement + /// @param format... + /// @returns void + /// + void LCD_printf(const char* format, ...); + +private: + +}; + + +void BSP_LCD_GLASS_CLEAR_WITHOUT_BAR(void); + +void BSP_LCD_GLASS_SetBar(uint8_t Value); + +void BSP_LCD_GLASS_DisplayString_iut_cachan(uint8_t *ptr); + +void BSP_LCD_GLASS_ScrollSentence_iut_cachan(uint8_t* ptr, uint8_t size, uint16_t nScroll, uint16_t ScrollSpeed); + +void Decalage_sentence(void); + +extern uint8_t Global_Bar_Value; + +extern LCD_HandleTypeDef LCDHandle; + +extern const uint16_t CapLetterMap[26]; + +extern const uint16_t NumberMap[10]; + +extern uint32_t Digit[4]; /* Digit frame buffer */ + +extern uint8_t LCDBar; +