Librairie nécessaire pour utiliser le Lcd de l'IOGS
Lcd.cpp
- Committer:
- Thur
- Date:
- 2017-06-06
- Revision:
- 3:f5877d3dcc0f
- Parent:
- 2:bcb0d1541b67
File content as of revision 3:f5877d3dcc0f:
#include "Lcd.h" #include "mbed.h" Lcd::Lcd(PinName rs, PinName sck, PinName miso, PinName mosi,PinName cs) : RS_LCD(rs),spi(mosi,miso,sck),CS(cs) {}; void Lcd::write_LCD(char c) { CS = 0; RS_LCD = 1; spi.write(c); // wait_ms(1); RS_LCD = 1; CS = 1; return; } void Lcd::writeStr_LCD(char c[], char ligne, char colonne) { char i=0; setPosition(ligne,colonne); while(c[i] != '\0') { write_LCD(c[i]); i++; } char lig = i/16 + 1; char col = i%16 + 1; setPosition(lig,col); } void Lcd::writeCmd_LCD(char c) { CS =0; RS_LCD =0; spi.write(c); RS_LCD = 1; CS = 1; return; } void Lcd::setPosition(char ligne, char colonne) { char adress = 0x80 + ((ligne-1)*16) + (colonne -1); writeCmd_LCD(adress); wait_ms(1); return; } void Lcd::clear_LCD(void){ CS = 0; RS_LCD=0; writeCmd_LCD(0x01); //Clear Display wait_ms(2); //delay 2 ms RS_LCD =1; CS=1; return; } void Lcd::init_SPI(void) { // Chip must be deselected CS = 1; // Setup the spi for 8 bit data, high steady state clock, // second edge capture, with a 1MHz clock rate spi.format(8,3); spi.frequency(10000); // Select the device by seting chip select low } void Lcd::init_LCD(void) { init_SPI(); wait_ms(10); CS = 0; RS_LCD = 0; spi.write(0x29); // Function Set - Table 1 spi.write(0x1D); // Bias Set spi.write(0x50); // Power Control spi.write(0x6C); // Follower Control spi.write(0x7C); // Contrast Set spi.write(0x03); // Function Set - Table 0 spi.write(0x0F); spi.write(0x01); // Clear Display wait_ms(2); spi.write(0x06); // Display On wait_ms(10); RS_LCD=1; CS=1; wait_ms(10); return; }