Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
LCD.cpp@2:adb317232204, 2021-11-15 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |