LCD I2C Library New depot for last update : https://github.com/YSI-LPS/lib_LCD_i2c_SPTLYI
Dependents: TD1_exo1 TD1_exe1_suite TP3_exo1 TP3_exo2 ... more
New depot for last update : https://github.com/YSI-LPS/lib_LCD_i2c_SPTLYI
Library for Character / Alphanumeric LCD Module 2 lines of 16 characters - 2 x 16
http://fr.farnell.com/midas/mccog21605b6w-sptlyi/lcd-cog-2x16-stn-vert-b-l-i2c/dp/2063208
lib_LCD_i2c_SPTLYI.h@13:b0c643bbf1fa, 2018-05-02 (annotated)
- Committer:
- YSI
- Date:
- Wed May 02 15:03:36 2018 +0000
- Revision:
- 13:b0c643bbf1fa
- Parent:
- 11:86ebe0fc54f9
update interrupt bug
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
YSI | 1:a805daa83dd0 | 1 | /** LCD i2c SPTLYI class |
YSI | 4:38d0fe9c8eb6 | 2 | * |
YSI | 4:38d0fe9c8eb6 | 3 | * @purpose library for i2c LCD |
YSI | 4:38d0fe9c8eb6 | 4 | * |
YSI | 4:38d0fe9c8eb6 | 5 | * Utilisée pour écrire sur l'afficheur i2c SPTLYI 2x16. |
YSI | 1:a805daa83dd0 | 6 | * |
YSI | 5:feba12f32d06 | 7 | * http://fr.farnell.com/midas/mccog21605b6w-sptlyi/lcd-cog-2x16-stn-vert-b-l-i2c/dp/2063208 |
YSI | 5:feba12f32d06 | 8 | * |
YSI | 2:cd7437c66c6b | 9 | * Copyright (c) 2014, cstyles (http://mbed.org) |
YSI | 2:cd7437c66c6b | 10 | * |
YSI | 1:a805daa83dd0 | 11 | * Exemple: |
YSI | 1:a805daa83dd0 | 12 | * @code |
YSI | 1:a805daa83dd0 | 13 | * #include "mbed.h" |
YSI | 1:a805daa83dd0 | 14 | * #include "lib_LCD_i2c_SPTLYI.h" |
YSI | 9:0acc7e2330c6 | 15 | * |
YSI | 9:0acc7e2330c6 | 16 | * LCD_I2C LCD; |
YSI | 9:0acc7e2330c6 | 17 | * //LCD_I2C LCD(p28, p27, p26, 0x7C); //sda, scl, rst, only 4 slave address 0x7C 0x7D 0x7E 0x7F |
YSI | 1:a805daa83dd0 | 18 | * |
YSI | 4:38d0fe9c8eb6 | 19 | * int main() |
YSI | 4:38d0fe9c8eb6 | 20 | * { |
YSI | 9:0acc7e2330c6 | 21 | * while(1) |
YSI | 9:0acc7e2330c6 | 22 | * { |
YSI | 9:0acc7e2330c6 | 23 | * for(int i = 0; i < 9999; i++) |
YSI | 9:0acc7e2330c6 | 24 | * { |
YSI | 9:0acc7e2330c6 | 25 | * LCD.clear(); |
YSI | 9:0acc7e2330c6 | 26 | * LCD.print(i); |
YSI | 9:0acc7e2330c6 | 27 | * wait(0.25); |
YSI | 9:0acc7e2330c6 | 28 | * } |
YSI | 9:0acc7e2330c6 | 29 | * } |
YSI | 1:a805daa83dd0 | 30 | * } |
YSI | 1:a805daa83dd0 | 31 | * @endcode |
YSI | 2:cd7437c66c6b | 32 | * @file lib_LCD_i2c_SPTLYI.h |
YSI | 2:cd7437c66c6b | 33 | * @date Jan 2014 |
YSI | 2:cd7437c66c6b | 34 | * @author Yannic Simon |
YSI | 1:a805daa83dd0 | 35 | */ |
YSI | 1:a805daa83dd0 | 36 | |
YSI | 0:0549f4c4896c | 37 | #ifndef DEF_lib_LCD_i2c_SPTLYI_H |
YSI | 0:0549f4c4896c | 38 | #define DEF_lib_LCD_i2c_SPTLYI_H |
YSI | 0:0549f4c4896c | 39 | |
YSI | 0:0549f4c4896c | 40 | #include "mbed.h" |
YSI | 4:38d0fe9c8eb6 | 41 | #include <cstdarg> |
YSI | 0:0549f4c4896c | 42 | |
YSI | 3:7ac1d2432a96 | 43 | /** LCD_I2C class |
YSI | 3:7ac1d2432a96 | 44 | */ |
YSI | 0:0549f4c4896c | 45 | class LCD_I2C : public I2C |
YSI | 0:0549f4c4896c | 46 | { |
YSI | 0:0549f4c4896c | 47 | public: |
YSI | 1:a805daa83dd0 | 48 | /** Creer une instance LCD_I2C |
YSI | 9:0acc7e2330c6 | 49 | * sur les pins sda, scl, rst avec 1 des 4 adresses possiblent 0x7C 0x7D 0x7E 0x7F |
YSI | 5:feba12f32d06 | 50 | * |
YSI | 9:0acc7e2330c6 | 51 | * @param pin_sda par defaut p28 |
YSI | 9:0acc7e2330c6 | 52 | * @param pin_scl par defaut p27 |
YSI | 9:0acc7e2330c6 | 53 | * @param pin_rst par defaut p26 |
YSI | 9:0acc7e2330c6 | 54 | * @param address par defaut 0x7C |
YSI | 1:a805daa83dd0 | 55 | */ |
YSI | 9:0acc7e2330c6 | 56 | LCD_I2C(PinName pin_sda = p28, PinName pin_scl = p27, PinName pin_rst = p26, int address = 0x7C); |
YSI | 0:0549f4c4896c | 57 | |
YSI | 1:a805daa83dd0 | 58 | /** Efface l'afficheur et renvoie le curseur en position X = 0 et Y = 0 |
YSI | 1:a805daa83dd0 | 59 | * |
YSI | 1:a805daa83dd0 | 60 | * @param aucun |
YSI | 1:a805daa83dd0 | 61 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 62 | */ |
YSI | 0:0549f4c4896c | 63 | int clear(void); |
YSI | 4:38d0fe9c8eb6 | 64 | |
YSI | 1:a805daa83dd0 | 65 | /** renvoie le curseur en position X = 0 et Y = 0 |
YSI | 1:a805daa83dd0 | 66 | * |
YSI | 1:a805daa83dd0 | 67 | * @param aucun |
YSI | 1:a805daa83dd0 | 68 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 69 | */ |
YSI | 0:0549f4c4896c | 70 | int return_home_cursor(void); |
YSI | 4:38d0fe9c8eb6 | 71 | |
YSI | 4:38d0fe9c8eb6 | 72 | /** positionne le curseur sur la ligne (0 à 39) |
YSI | 1:a805daa83dd0 | 73 | * |
YSI | 1:a805daa83dd0 | 74 | * @param X est la position sur la ligne |
YSI | 1:a805daa83dd0 | 75 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 76 | */ |
YSI | 10:246c6f2dc45b | 77 | int set_position_cursor(int X); |
YSI | 4:38d0fe9c8eb6 | 78 | |
YSI | 4:38d0fe9c8eb6 | 79 | /** positionne le curseur horizontalement (0 à 39) et verticalement (0 à 1) |
YSI | 1:a805daa83dd0 | 80 | * |
YSI | 1:a805daa83dd0 | 81 | * @param X est la position sur la ligne |
YSI | 5:feba12f32d06 | 82 | * @param Y est la position sur la colone |
YSI | 1:a805daa83dd0 | 83 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 84 | */ |
YSI | 10:246c6f2dc45b | 85 | int set_position_cursor(int X, int Y); |
YSI | 4:38d0fe9c8eb6 | 86 | |
YSI | 1:a805daa83dd0 | 87 | /** renvoie la position horizontale du curseur |
YSI | 1:a805daa83dd0 | 88 | * |
YSI | 1:a805daa83dd0 | 89 | * @param aucun |
YSI | 4:38d0fe9c8eb6 | 90 | * @returns X est la position sur la ligne (0 à 39) |
YSI | 1:a805daa83dd0 | 91 | */ |
YSI | 1:a805daa83dd0 | 92 | int get_X_position_cursor(void); |
YSI | 4:38d0fe9c8eb6 | 93 | |
YSI | 1:a805daa83dd0 | 94 | /** renvoie la position verticale du curseur |
YSI | 1:a805daa83dd0 | 95 | * |
YSI | 1:a805daa83dd0 | 96 | * @param aucun |
YSI | 4:38d0fe9c8eb6 | 97 | * @returns Y est la position sur la colone (0 à 1) |
YSI | 1:a805daa83dd0 | 98 | */ |
YSI | 1:a805daa83dd0 | 99 | int get_Y_position_cursor(void); |
YSI | 4:38d0fe9c8eb6 | 100 | |
YSI | 4:38d0fe9c8eb6 | 101 | /** positionne le curseur au début de la ligne suivante |
YSI | 1:a805daa83dd0 | 102 | * |
YSI | 1:a805daa83dd0 | 103 | * @param aucun |
YSI | 1:a805daa83dd0 | 104 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 105 | */ |
YSI | 0:0549f4c4896c | 106 | int shift_line_cursor(void); |
YSI | 4:38d0fe9c8eb6 | 107 | |
YSI | 1:a805daa83dd0 | 108 | /** active l'affichage du curseur |
YSI | 1:a805daa83dd0 | 109 | * |
YSI | 1:a805daa83dd0 | 110 | * @param aucun |
YSI | 1:a805daa83dd0 | 111 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 112 | */ |
YSI | 1:a805daa83dd0 | 113 | int turn_on_cursor(void); |
YSI | 4:38d0fe9c8eb6 | 114 | |
YSI | 1:a805daa83dd0 | 115 | /** désactive l'affichage du curseur |
YSI | 1:a805daa83dd0 | 116 | * |
YSI | 1:a805daa83dd0 | 117 | * @param aucun |
YSI | 1:a805daa83dd0 | 118 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 119 | */ |
YSI | 1:a805daa83dd0 | 120 | int turn_off_cursor(void); |
YSI | 4:38d0fe9c8eb6 | 121 | |
YSI | 1:a805daa83dd0 | 122 | /** active l'affichage |
YSI | 1:a805daa83dd0 | 123 | * |
YSI | 1:a805daa83dd0 | 124 | * @param aucun |
YSI | 1:a805daa83dd0 | 125 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 126 | */ |
YSI | 1:a805daa83dd0 | 127 | int turn_on_display(void); |
YSI | 4:38d0fe9c8eb6 | 128 | |
YSI | 1:a805daa83dd0 | 129 | /** désactive l'affichage |
YSI | 1:a805daa83dd0 | 130 | * |
YSI | 1:a805daa83dd0 | 131 | * @param aucun |
YSI | 1:a805daa83dd0 | 132 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 133 | */ |
YSI | 1:a805daa83dd0 | 134 | int turn_off_display(void); |
YSI | 4:38d0fe9c8eb6 | 135 | |
YSI | 1:a805daa83dd0 | 136 | /** déplace le curseur vers la gauche |
YSI | 1:a805daa83dd0 | 137 | * |
YSI | 1:a805daa83dd0 | 138 | * @param n est le nombre de déplacement du curseur |
YSI | 1:a805daa83dd0 | 139 | * @returns aucun |
YSI | 1:a805daa83dd0 | 140 | */ |
YSI | 9:0acc7e2330c6 | 141 | void shift_left_cursor(int n=1); |
YSI | 4:38d0fe9c8eb6 | 142 | |
YSI | 1:a805daa83dd0 | 143 | /** déplace le curseur vers la droite |
YSI | 1:a805daa83dd0 | 144 | * |
YSI | 1:a805daa83dd0 | 145 | * @param n est le nombre de déplacement du curseur |
YSI | 1:a805daa83dd0 | 146 | * @returns aucun |
YSI | 1:a805daa83dd0 | 147 | */ |
YSI | 9:0acc7e2330c6 | 148 | void shift_right_cursor(int n=1); |
YSI | 4:38d0fe9c8eb6 | 149 | |
YSI | 1:a805daa83dd0 | 150 | /** déplace l'affichage vers la gauche |
YSI | 1:a805daa83dd0 | 151 | * |
YSI | 1:a805daa83dd0 | 152 | * @param n est le nombre de déplacement de l'affichage |
YSI | 1:a805daa83dd0 | 153 | * @returns aucun |
YSI | 1:a805daa83dd0 | 154 | */ |
YSI | 9:0acc7e2330c6 | 155 | void shift_left_display(int n=1); |
YSI | 4:38d0fe9c8eb6 | 156 | |
YSI | 1:a805daa83dd0 | 157 | /** déplace l'affichage vers la droite |
YSI | 1:a805daa83dd0 | 158 | * |
YSI | 1:a805daa83dd0 | 159 | * @param n est le nombre de déplacement de l'affichage |
YSI | 1:a805daa83dd0 | 160 | * @returns aucun |
YSI | 1:a805daa83dd0 | 161 | */ |
YSI | 9:0acc7e2330c6 | 162 | void shift_right_display(int n=1); |
YSI | 4:38d0fe9c8eb6 | 163 | |
YSI | 1:a805daa83dd0 | 164 | /** active le déplacement automatique de l'affichage vers la droite |
YSI | 1:a805daa83dd0 | 165 | * |
YSI | 1:a805daa83dd0 | 166 | * @param aucun |
YSI | 1:a805daa83dd0 | 167 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 168 | */ |
YSI | 0:0549f4c4896c | 169 | int enable_auto_shift_right_display(void); |
YSI | 4:38d0fe9c8eb6 | 170 | |
YSI | 1:a805daa83dd0 | 171 | /** active le déplacement automatique de l'affichage vers la gauche |
YSI | 1:a805daa83dd0 | 172 | * |
YSI | 1:a805daa83dd0 | 173 | * @param aucun |
YSI | 1:a805daa83dd0 | 174 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 175 | */ |
YSI | 0:0549f4c4896c | 176 | int enable_auto_shift_left_display(void); |
YSI | 4:38d0fe9c8eb6 | 177 | |
YSI | 1:a805daa83dd0 | 178 | /** désactive le déplacement automatique de l'affichage |
YSI | 1:a805daa83dd0 | 179 | * |
YSI | 1:a805daa83dd0 | 180 | * @param aucun |
YSI | 1:a805daa83dd0 | 181 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 182 | */ |
YSI | 0:0549f4c4896c | 183 | int disable_auto_shift_display(void); |
YSI | 4:38d0fe9c8eb6 | 184 | |
YSI | 1:a805daa83dd0 | 185 | /** configure le déplacement automatique du curseur vers la droite |
YSI | 1:a805daa83dd0 | 186 | * |
YSI | 1:a805daa83dd0 | 187 | * @param aucun |
YSI | 1:a805daa83dd0 | 188 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 189 | */ |
YSI | 0:0549f4c4896c | 190 | int auto_shift_right_cursor(void); |
YSI | 4:38d0fe9c8eb6 | 191 | |
YSI | 1:a805daa83dd0 | 192 | /** configure le déplacement automatique du curseur vers la droite |
YSI | 1:a805daa83dd0 | 193 | * |
YSI | 1:a805daa83dd0 | 194 | * @param aucun |
YSI | 1:a805daa83dd0 | 195 | * @returns acknoledge write i2c |
YSI | 1:a805daa83dd0 | 196 | */ |
YSI | 0:0549f4c4896c | 197 | int auto_shift_left_cursor(void); |
YSI | 4:38d0fe9c8eb6 | 198 | |
YSI | 4:38d0fe9c8eb6 | 199 | /** renvoie le caractere se trouvant à la position du curseur |
YSI | 4:38d0fe9c8eb6 | 200 | * |
YSI | 5:feba12f32d06 | 201 | * @param aucun |
YSI | 5:feba12f32d06 | 202 | * @returns le caractere se trouvant à position du curseur |
YSI | 4:38d0fe9c8eb6 | 203 | */ |
YSI | 4:38d0fe9c8eb6 | 204 | char read(void); |
YSI | 4:38d0fe9c8eb6 | 205 | |
YSI | 4:38d0fe9c8eb6 | 206 | /** renvoie le caractere se trouvant à la position spécifiée |
YSI | 4:38d0fe9c8eb6 | 207 | * |
YSI | 4:38d0fe9c8eb6 | 208 | * @param X est la position sur la ligne |
YSI | 5:feba12f32d06 | 209 | * @param Y est la position sur la colone |
YSI | 5:feba12f32d06 | 210 | * @returns le caractere se trouvant à position X et Y |
YSI | 4:38d0fe9c8eb6 | 211 | */ |
YSI | 4:38d0fe9c8eb6 | 212 | char read(int X, int Y); |
YSI | 4:38d0fe9c8eb6 | 213 | |
YSI | 10:246c6f2dc45b | 214 | /** affiche une variable sur l'afficheur |
YSI | 1:a805daa83dd0 | 215 | * |
YSI | 11:86ebe0fc54f9 | 216 | * @param nb la variable à afficher |
YSI | 1:a805daa83dd0 | 217 | * @returns acknoledge write i2c |
YSI | 5:feba12f32d06 | 218 | */ |
YSI | 10:246c6f2dc45b | 219 | int print(int nb); |
YSI | 10:246c6f2dc45b | 220 | int print(unsigned int nb); |
YSI | 1:a805daa83dd0 | 221 | int print(short nb); |
YSI | 1:a805daa83dd0 | 222 | int print(unsigned short nb); |
YSI | 1:a805daa83dd0 | 223 | int print(long long nb); |
YSI | 1:a805daa83dd0 | 224 | int print(unsigned long long nb); |
YSI | 1:a805daa83dd0 | 225 | int print(float nb); |
YSI | 0:0549f4c4896c | 226 | int print(double nb); |
YSI | 10:246c6f2dc45b | 227 | int print(char c); |
YSI | 10:246c6f2dc45b | 228 | int print(char *s); |
YSI | 1:a805daa83dd0 | 229 | |
YSI | 10:246c6f2dc45b | 230 | /** affiche une chaine formaté sur l'afficheur |
YSI | 10:246c6f2dc45b | 231 | * |
YSI | 11:86ebe0fc54f9 | 232 | * @param format la chaine de format à afficher |
YSI | 10:246c6f2dc45b | 233 | * @param ... les arguments à afficher |
YSI | 10:246c6f2dc45b | 234 | * @returns acknoledge write i2c |
YSI | 10:246c6f2dc45b | 235 | */ |
YSI | 11:86ebe0fc54f9 | 236 | int print(const char *format, ... ); |
YSI | 1:a805daa83dd0 | 237 | |
YSI | 1:a805daa83dd0 | 238 | private: |
YSI | 0:0549f4c4896c | 239 | DigitalInOut m_pin_rst; |
YSI | 0:0549f4c4896c | 240 | int m_address; |
YSI | 0:0549f4c4896c | 241 | |
YSI | 0:0549f4c4896c | 242 | int init(void); |
YSI | 0:0549f4c4896c | 243 | void reset(void); |
YSI | 1:a805daa83dd0 | 244 | int putnc(char *s, int n); |
YSI | 1:a805daa83dd0 | 245 | |
YSI | 1:a805daa83dd0 | 246 | void X_move_position(int n); |
YSI | 4:38d0fe9c8eb6 | 247 | int X40_position_cursor; |
YSI | 4:38d0fe9c8eb6 | 248 | int X80_position_cursor; |
YSI | 4:38d0fe9c8eb6 | 249 | int Y2_position_cursor; |
YSI | 4:38d0fe9c8eb6 | 250 | char LCD_Data_Register[80]; |
YSI | 0:0549f4c4896c | 251 | }; |
YSI | 0:0549f4c4896c | 252 | |
YSI | 0:0549f4c4896c | 253 | #endif |