Library implementing the TextDisplay interface for the Serial LCDs as sold by Sparkfun etc...

Dependencies:   TextDisplays

Committer:
giryan
Date:
Sun Sep 05 09:23:37 2010 +0000
Revision:
2:60947d4b0efe
Parent:
1:7174fd65fd77
Rearranged the lib to have it as a lib withing a project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
giryan 1:7174fd65fd77 1 // Copyright (c) 2010 mwaddilove
giryan 1:7174fd65fd77 2 // Released under the MIT License: http://mbed.org/license/mit
giryan 1:7174fd65fd77 3
giryan 0:bd978ddc0470 4 #include "TextLCD_Serial.h"
giryan 0:bd978ddc0470 5
giryan 0:bd978ddc0470 6 //! Constructor
giryan 0:bd978ddc0470 7 TextLCD_Serial::TextLCD_Serial(PinName tx, PinName rx, char const * name /*= NULL*/)
giryan 0:bd978ddc0470 8 : _lcd(tx, rx)
giryan 0:bd978ddc0470 9 {
giryan 0:bd978ddc0470 10 _lcd.baud(9600);
giryan 0:bd978ddc0470 11 }
giryan 0:bd978ddc0470 12
giryan 0:bd978ddc0470 13
giryan 0:bd978ddc0470 14 void TextLCD_Serial::character(int column, int row, int c)
giryan 0:bd978ddc0470 15 {
giryan 0:bd978ddc0470 16 setLCDCursor(column, row);
giryan 0:bd978ddc0470 17
giryan 0:bd978ddc0470 18 writeData(c);
giryan 0:bd978ddc0470 19 }
giryan 0:bd978ddc0470 20
giryan 0:bd978ddc0470 21
giryan 0:bd978ddc0470 22 //! Set the LCD's cursor position
giryan 0:bd978ddc0470 23 void TextLCD_Serial::setLCDCursor(int const column, int const row)
giryan 0:bd978ddc0470 24 {
giryan 0:bd978ddc0470 25 unsigned char const positionCode = Codes::Position | ((row & 0x1) << 6) | (column % 0x3F);
giryan 0:bd978ddc0470 26
giryan 0:bd978ddc0470 27 writeCommand(positionCode);
giryan 0:bd978ddc0470 28 }
giryan 0:bd978ddc0470 29
giryan 0:bd978ddc0470 30 /** Clear the screen and locate to 0,0 */
giryan 0:bd978ddc0470 31 void TextLCD_Serial::cls()
giryan 0:bd978ddc0470 32 {
giryan 0:bd978ddc0470 33 writeCommand(Codes::Clear);
giryan 0:bd978ddc0470 34
giryan 0:bd978ddc0470 35 locate(0,0);
giryan 0:bd978ddc0470 36 }
giryan 0:bd978ddc0470 37
giryan 0:bd978ddc0470 38
giryan 0:bd978ddc0470 39 //! write a byte to _lcd
giryan 0:bd978ddc0470 40 void TextLCD_Serial::writeByte(int const value)
giryan 0:bd978ddc0470 41 {
giryan 0:bd978ddc0470 42 _lcd.putc(value);
giryan 0:bd978ddc0470 43 }
giryan 0:bd978ddc0470 44
giryan 0:bd978ddc0470 45
giryan 0:bd978ddc0470 46 //!Send a command
giryan 0:bd978ddc0470 47 void TextLCD_Serial::writeCommand(int const command)
giryan 0:bd978ddc0470 48 {
giryan 0:bd978ddc0470 49 writeByte(Codes::Command);
giryan 0:bd978ddc0470 50 writeByte(command);
giryan 0:bd978ddc0470 51 }
giryan 0:bd978ddc0470 52
giryan 0:bd978ddc0470 53
giryan 0:bd978ddc0470 54 //! write a regular char.
giryan 0:bd978ddc0470 55 void TextLCD_Serial::writeData(int const data)
giryan 0:bd978ddc0470 56 {
giryan 0:bd978ddc0470 57 writeByte(data);
giryan 0:bd978ddc0470 58 }