Bibliothèques pour l'écran tactile de la carte MCBSTM32C



Documents pareils
1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Rappels Entrées -Sorties

TD : Codage des images

TP : Gestion d une image au format PGM

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Fête de la science Initiation au traitement des images

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var Tel : bij@agasc.fr Word: Les tableaux.

TP1 : Initiation à l algorithmique (1 séance)

Traitement numérique de l'image. Raphaël Isdant

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

INFO 2 : Traitement des images

Structure du format BMP, sa lecture, sa construction et son écriture

Généralités sur le Langage Java et éléments syntaxiques.

Initiation à linfographie

Formats d images. 1 Introduction

Transférer et enregistrer les photos sur l'ordinateur

Projet Matlab : un logiciel de cryptage

Création de maquette web

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

JPEG, PNG, PDF, CMJN, HTML, Préparez-vous à communiquer!

Gestion de projet. GanttProject Didacticiel V novembre Gérard Gervois Frédéric Giamarchi

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.


UE Programmation Impérative Licence 2ème Année

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

UE C avancé cours 1: introduction et révisions

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

Sur trois couches, on obtient donc 2563 = de couleurs, soit 24bpp (Bit Per Pixel).

Cours d Algorithmique et de Langage C v 3.0

L import massif introduit plusieurs nouvelles fonctionnalités, selon que l on importe un thésaurus, un ensemble de valeurs contrôlées ou un corpus.

LES NOUVEAUTÉS DE ARCON 15 PRO

L espace de travail de Photoshop

Introduction à l héritage en C++

TP SIN Traitement d image

Dans l idéal, ceci devrait être fait en amont pour chaque image envoyée sur l espace de stockage de votre site internet.

Conservez la documentation à portée de main pour toute référence future. Le terme «pointeur» dans ce manuel désigne le pointeur interactif YA-P10.

I. Introduction aux fonctions : les fonctions standards

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Traitement par lot redimensionner des images

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Algorithmique avec Algobox

Le langage C. Séance n 4

LIVRET DE facebook.com/asmadigames

Informatique Générale

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Codage d information. Codage d information : -Définition-

Google Drive, le cloud de Google

Chapitre 4 Pierre, papier, ciseaux

BACCALAURÉAT TECHNOLOGIQUE STD ARTS APPLIQUÉS

Introduction au langage C

Installation et paramétrage. Accès aux modèles, autotextes et clip- art partagés

VOS PREMIERS PAS AVEC TRACENPOCHE

Manuel d installation du clavier S5

Pop-Art façon Roy Liechtenstein

Module Prestashop Moyen de paiement - Financement de commandes à crédit avec Sofinco

Compression de Données - Algorithme de Huffman Document de Conception

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Créer des étiquettes avec les adresses d'un tableau Calc

Créer des documents interactifs

Manuel d Utilisateur - Logiciel ModAFi. Jonathan ANJOU - Maud EYZAT - Kévin NAVARRO

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

INTRODUCTION. Pour réaliser une pièce sur Charlyrobot, il faut le faire en trois étapes :

DOSSIER D'ACTIVITES SUR TUXPAINT Dessiner avec Tuxpaint. Objectifs :

Interface PC Vivago Ultra. Pro. Guide d'utilisation

Chap17 - CORRECTİON DES EXERCİCES

Créer vos données sources avec OpenOffice, adieu Excel

Sommaire. 2. Utiliser la télécommande Télécommande Administrateur Télécommande Utilisateur Échanger une télécommande...

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Tutoriaux : Faites vos premiers pas avec Microsoft Visio 2010

Unité centrale de commande Watts W24

GESTION DU LOGO. 1. Comment gérer votre logo? Format de l image Dimensions de l image Taille de l image 9

Programmation impérative

Lucie Trépanier, Robert Daniel Szczech, Jean- François Vaillancourt- Trudel et Christine Blais. Netquiz Pro 4. sss

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

NOTICE TELESERVICES : Payer un impôt et gérer les contrat de paiement des impôts professionnels

Guide de démarrage rapide. (pour la version 5.0.)

Affichage de la date d'exigibilité sur les documents FAQ INV 011

Leçon N 5 PICASA Généralités

SUPPORT DE COURS. Langage C

Mon aide mémoire traitement de texte (Microsoft Word)

Programmation en Java IUT GEII (MC-II1) 1

Bases de programmation. Cours 5. Structurer les données

GUIDE D UTILISATION DU BACKOFFICE

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Programmation système I Les entrées/sorties

1.6- Génération de nombres aléatoires

VOCABULAIRE LIÉ AUX ORDINATEURS ET À INTERNET

Les opérations binaires

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Correction des Travaux Pratiques Organiser son espace de travail

Première expérience?

Initiation au dessin Bitmap

MEMENTO D'UTILISATION Du T.N.I. SmartBoard (Version )

Transcription:

Bibliothèques pour l'écran tactile de la carte MCBSTM32C 1 Bibliothèque pour utiliser l'écran LCD Pour utiliser l'écran LCD il faut: inclure le fichier GLCD.h dans le programme main inclure la bibliothèque GLCD_SPI_STM32.lib dans le projet 1.1 Dimensions de l'écran LCD L'écran a une définition de 320 x 240 (largeur x hauteur). Deux constantes sont définies contenant ces valeurs : GLCD_WIDTH et GLCD_HEIGHT 1.2 Initialisation de l'écran LCD Elle se fait par la fonction : void GLCD_Init () 1.3 Couleurs Le codage des couleurs est fait sur 16 bits de la façon suivante : 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 rouge vert bleu La composante rouge est codée sur 5 bits, la verte sur 6 bits et la bleue sur 5 bits. Toutefois la bibliothèque offre une fonction permettant à partir de 3 composantes entre 0 et 255 d'obtenir le code correspondant à la couleur la plus proche sur l'écran LCD. Il s'agit de la fonction : unsigned short GLCD_Color (unsigned short r, unsigned short v, unsigned short b) Le premier paramètre est la composante rouge (0 à 255) Le deuxième paramètre est la composante verte (0 à 255) Le dernier paramètre est la composante bleue (0 à 255) La valeur de retour est le code de couleur correspondant pour l'écran LCD (16 bits) Quelques couleurs sont prédéfinies : Nom rouge vert bleu Black 0 0 0 Navy 0 0 128 DarkGreen 0 128 0 DarkCyan 0 128 128 Maroon 128 0 0 Purple 128 0 128 Olive 128 128 0 LightGrey 192 192 192 DarkGrey 128 128 128 Blue 0 0 255 Green 0 255 0 M. Dalmau IUT de Bayonne Pays-Basque 1

Cyan 0 255 255 Red 255 0 0 Magenta 255 0 255 Yellow 255 255 0 White 255 255 255 Le choix de la couleur utilisée pour les tracés (dessins et caractères) est fait par la fonction : void GLCD_SetForegroundColor (unsigned short color) Le paramètre est la couleur de tracé utilisée pour les futurs dessins ou caractères. Le choix de la couleur utilisée comme fond pour les caractères est fait par la fonction : void GLCD_SetBackgroundColor (unsigned short color) Le paramètre est la couleur utilisée comme fond pour les futurs caractères. 1.4 Effacement de l'écran avec une couleur L'écran LCD est totalement effacé (rempli par une couleur uniforme) grâce à la fonction : void GLCD_Clear (unsigned short color) Le paramètre est la couleur de fond utilisée pour effacer l'écran. 1.5 Graphisme Le dessin d'un seul pixel se fait par la fonction : void GLCD_PutPixel (unsigned int x, unsigned int y) Le premier paramètre est la coordonnée en X du pixel (0 à Le deuxième paramètre est la coordonnée en Y du pixel (0 à Le pixel est allumé dans la couleur définie par le dernier appel de GLCD_SetForegroundColor Le tracé d'une ligne droite se fait par la fonction : void GLCD_DrawLine (unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2) Le premier paramètre est la coordonnée en X du point de départ (0 à Le deuxième paramètre est la coordonnée en Y du point de départ (0 à Le troisième paramètre est la coordonnée en X du point d'arrivée (0 à Le dernier paramètre est la coordonnée en Y du point d'arrivée (0 à La droite est tracée dans la couleur définie par le dernier appel de GLCD_SetForegroundColor Le tracé d'un rectangle se fait par la fonction : void GLCD_DrawRect (unsigned int x, unsigned int y, unsigned int l, unsigned int h) M. Dalmau IUT de Bayonne Pays-Basque 2

Le rectangle est tracé dans la couleur définie par le dernier appel de GLCD_SetForegroundColor Le tracé d'un rectangle plein se fait par la fonction : void GLCD_FillRect (unsigned int x, unsigned int y, unsigned int l, unsigned int h) Le rectangle est rempli par la couleur définie par le dernier appel de GLCD_SetForegroundColor Le tracé d'un ovale est obtenu en définissant le rectangle circonscrit. Il se fait par la fonction : void GLCD_DrawOval (unsigned int x, unsigned int y, unsigned int l, unsigned int h) L'ovale est tracé dans la couleur définie par le dernier appel de GLCD_SetForegroundColor Le tracé d'un ovale plein est obtenu en définissant le rectangle circonscrit. Il se fait par la fonction : void GLCD_FillOval (unsigned int x, unsigned int y, unsigned int l, unsigned int h) L'ovale est rempli par la couleur définie par le dernier appel de GLCD_SetForegroundColor 1.6 Images Les images sont définies par un tableau de mots de 16 bits. Le premier élément du tableau contient la largeur de l'image, le deuxième contient sa hauteur, les éléments suivants sont les codes de couleur des pixels. On peut obtenir un fichier.h contenant la déclaration d'un tel tableau à partir d'un fichier au format BMP (couleurs sur 24 bits) en utilisant la commande "genere" fournie. Cette commande demande le nom du fichier BMP sans suffixe et crée un fichier du même nom avec le suffixe.h qu'il suffit d'inclure dans le programme qui doit afficher l'image. Le tableau défini dans ce fichier.h porte le même nom que le fichier lui-même (sans suffixe évidemment). M. Dalmau IUT de Bayonne Pays-Basque 3

L'affichage de l'image se fait alors par la fonction : void GLCD_DrawImage (unsigned int x, unsigned int y, const unsigned short bitmap[ ]) Le premier paramètre est la coordonnée en X du coin supérieur gauche de l'image (0 à Le deuxième paramètre est la coordonnée en Y du coin supérieur gauche de l'image (0 à Le dernier paramètre est le tableau contenu dans le fichier.h généré 1.7 Affichages Les affichages en mode textuel se font sur 10 lignes (0 à 9) de 20 colonnes (0 à 19). Le fichier Font-24x16.h définit des caractères sous forme de tableaux de pixels de 16x24 Il contient les caractères de code ASCII 0x20 (espace) à 0x7E (tilde) tandis que les codes 0x80 à 0x8F définissent des caractères semi-graphiques : 0x80 / 0x81 : cercle (vide/plein) 0x82 / 0x83 : carré (vide/plein) 0x84 / 0x85 : flèche vers le haut (vide/pleine) 0x86 / 0x87 : flèche vers le bas (vide/pleine) 0x88 / 0x89 : flèche vers la gauche (vide/pleine) 0x8A / 0x8B : flèche vers la droite (vide/pleine) 0x8C / 0x8D : homme arrêté (vide/plein) 0x8E / 0x8F : homme qui marche (vide/plein) L'affichage d'un caractère est obtenu par la fonction : void GLCD_DrawChar (unsigned int ln, unsigned int col, char c) Le dernier paramètre est le caractère à afficher L'affichage d'une chaîne de caractères est obtenu par la fonction : void GLCD_DrawString (unsigned int ln, unsigned int col, char *s) Le dernier paramètre est un pointeur sur la chaîne de caractères à afficher L'affichage d'un entier décimal est obtenu par la fonction : void GLCD_DrawInt (unsigned int ln, unsigned int col, int v) Le dernier paramètre est l'entier à afficher L'affichage d'un nombre réel est obtenu par la fonction : void GLCD_DrawFloat (unsigned int ln, unsigned int col, float v) M. Dalmau IUT de Bayonne Pays-Basque 4

Le dernier paramètre est le réel à afficher L'affichage en hexadécimal d'un entier est obtenu par la fonction : void GLCD_DrawHex (unsigned int ln, unsigned int col, int v) Le dernier paramètre est l'entier à afficher en hexadécimal 1.8 Boutons utilisables avec l'écran tactile Les fonctions suivantes permettent de définir des boutons utilisables ensuite avec l'écran tactile (voir 2). Un bouton est constitué d'un texte placé dans un rectangle. La couleur du texte et du rectangle sont définies par GLCD_SetForegroundColor celle du fond du bouton par GLCD_SetBackgroundColor. Un bouton est représenté par une structure de données de type GLCD_Button. La création d'un bouton se fait par la fonction : void GLCD_CreateButton (GLCD_Button *bouton, unsigned int x, unsigned int y, char *texte) Le premier paramètre est un pointeur sur une structure de type GLCD_Button Le deuxième paramètre est la coordonnée en X du coin supérieur gauche du bouton Le troisième paramètre est la coordonnée en Y du coin supérieur gauche du bouton Le dernier paramètre est un pointeur sur la chaîne de caractères contenant le texte du bouton Cette fonction initialise la structure de données passée en premier paramètre pour définir le bouton. Cette structure de données pourra alors être utilisée par les fonctions qui suivent. L'affichage d'un bouton à l'écran se fait par la fonction : void GLCD_DrawButton (GLCD_Button *bouton, unsigned char appuye) Le premier paramètre est un pointeur sur une structure de type GLCD_Button initialisée par la fonction GLCD_CreateButton Le dernier paramètre indique si le bouton doit être dessiné en position appuyée ou lâchée. Les valeurs possibles de ce paramètre sont : GLCD_Button_ON ou GLCD_Button_OFF Lorsque l'on utilise l'écran tactile (voir 2) on récupère les coordonnées d'écran du point touché. La fonction suivante permet de savoir si un point défini par ses deux coordonnées se trouve ou non à l'intérieur d'un bouton : int GLCD_InsideButton (GLCD_Button *bouton, unsigned int x, unsigned int y) Le premier paramètre est un pointeur sur une structure de type GLCD_Button initialisée par la fonction GLCD_CreateButton. Le deuxième paramètre est la coordonnée en X du point à tester Le dernier paramètre est la coordonnée en Y du point à tester La valeur en retour est 1 si le point est dans le bouton et 0 sinon M. Dalmau IUT de Bayonne Pays-Basque 5

2 Bibliothèque pour utiliser l'écran tactile Pour utiliser l'écran tactile il faut: inclure le fichier TS.h dans le programme main inclure les bibliothèques TS_MBCSTM32C.lib et I2C_MBCSTM32C.lib dans le projet 2.1 Initialisation de l'écran tactile Elle se fait par la fonction : void TS_Init() 2.2 Utilisation de l'écran tactile Une structure de donnée de type TS_Coordonnees est utilisée pour contenir les informations sur le point de contact. Ses champs sont les suivants : unsigned int x; // coordonnée d'écran en x unsigned int y; // coordonnée d'écran en y unsigned int z; // pression du contact Pour savoir si des coordonnées de touché sont disponibles sur le contrôleur d'écran tactile on utilise la fonction : unsigned int TS_TesterCoordoneesPresentes(TS_Coordonnees *coords) Le paramètre est un pointeur sur une structure de type TS_Coordonnees dans laquelle seront placées les informations sur le point de contact s'il y a eu contact (valeur de retour de la fonction = 1) La valeur se retour est 1 s'il y a eu contact (le paramètre contient les informations sur le point de contact) et 0 sinon (le paramètre n'a pas été modifié) Tant qu'il y a contact avec l'écran le contrôleur continue à transmettre les informations sur le point de contact. Lorsque l'on souhaite les ignorer en attendant qu'il n'y ait plus de contact la fonction suivante peut être utilisée : void TS_AttendreFinTouche () M. Dalmau IUT de Bayonne Pays-Basque 6