cavallera claude / Mbed 2 deprecated afficheur_grove_lcd_exo

Dependencies:   mbed

Committer:
cavallera
Date:
Mon Nov 15 19:55:26 2021 +0000
Revision:
2:adb317232204
Parent:
1:1342700e4846
Child:
3:bd25d2c13601
test afficheur lcd grove

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pierreprovent 1:1342700e4846 1 #include "mbed.h"
pierreprovent 1:1342700e4846 2 #include "LCD.h"
pierreprovent 1:1342700e4846 3
pierreprovent 1:1342700e4846 4 LCD::LCD(PinName sda, PinName scl):i2c(sda, scl)
pierreprovent 1:1342700e4846 5 {
pierreprovent 1:1342700e4846 6 init();
pierreprovent 1:1342700e4846 7 }
pierreprovent 1:1342700e4846 8
pierreprovent 1:1342700e4846 9 void LCD::clear()
pierreprovent 1:1342700e4846 10 {
cavallera 2:adb317232204 11 sendCommand(0x01);
pierreprovent 1:1342700e4846 12 wait_us(1600);
pierreprovent 1:1342700e4846 13 }
pierreprovent 1:1342700e4846 14
pierreprovent 1:1342700e4846 15 void LCD::print(char *str)
pierreprovent 1:1342700e4846 16 {
pierreprovent 1:1342700e4846 17 data[0] = 0x40;
pierreprovent 1:1342700e4846 18 while(*str) {
pierreprovent 1:1342700e4846 19 data[1] = *str;
pierreprovent 1:1342700e4846 20 i2c.write(LCD_ADDRESS, data, 2);
pierreprovent 1:1342700e4846 21 str++;
pierreprovent 1:1342700e4846 22 }
pierreprovent 1:1342700e4846 23 }
pierreprovent 1:1342700e4846 24
pierreprovent 1:1342700e4846 25 void LCD::cursor(char col, char row)
pierreprovent 1:1342700e4846 26 {
pierreprovent 1:1342700e4846 27 if(row == 0) {
pierreprovent 1:1342700e4846 28 col = col | 0x80;
pierreprovent 1:1342700e4846 29 } else {
pierreprovent 1:1342700e4846 30 col = col | 0xc0;
pierreprovent 1:1342700e4846 31 }
pierreprovent 1:1342700e4846 32 sendCommand(col);
pierreprovent 1:1342700e4846 33 }
pierreprovent 1:1342700e4846 34
pierreprovent 1:1342700e4846 35 void LCD::sendCommand(char value)
pierreprovent 1:1342700e4846 36 {
pierreprovent 1:1342700e4846 37 data[0] = 0x80 ; // Co = 1, RS = 0 (Command transmitted)
pierreprovent 1:1342700e4846 38 data[1] = value;
pierreprovent 1:1342700e4846 39 i2c.write(LCD_ADDRESS, data, 2);
pierreprovent 1:1342700e4846 40 }
pierreprovent 1:1342700e4846 41
pierreprovent 1:1342700e4846 42 void LCD::init()
pierreprovent 1:1342700e4846 43 {
pierreprovent 1:1342700e4846 44 // Attendre au moins 30 ms après la mise en tension de la carte
pierreprovent 1:1342700e4846 45 wait_ms(50);
pierreprovent 1:1342700e4846 46 // Choisir le type d'affichage : 2 lignes de 5x8 points /caractère
cavallera 2:adb317232204 47 sendCommand(0x28);
pierreprovent 1:1342700e4846 48 // Attendre au moins 39 us
pierreprovent 1:1342700e4846 49 wait_us(45);
pierreprovent 1:1342700e4846 50 // Allumer l'afficheur, pas de curseur, il ne clignote pas
cavallera 2:adb317232204 51 sendCommand(0x0c);
pierreprovent 1:1342700e4846 52 // Attendre au moins 39 us
pierreprovent 1:1342700e4846 53 wait_us(45);
pierreprovent 1:1342700e4846 54 // Effacer l'afficheur
cavallera 2:adb317232204 55 sendCommand(0x01);
cavallera 2:adb317232204 56 wait_us(1600);
pierreprovent 1:1342700e4846 57 // Curseur se déplace à droite à chaque caractère, pas de "shift" de l'affichage
pierreprovent 1:1342700e4846 58 sendCommand(0x06);
pierreprovent 1:1342700e4846 59 }