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.
Dependencies: DDRO_Farrari mbed
Fork of DDRO_Farrari by
lcd.cpp
- Committer:
- liangzhen
- Date:
- 2013-10-07
- Revision:
- 0:84a8bcfbdec9
File content as of revision 0:84a8bcfbdec9:
#include "mbed.h"
#include "lcd.h"
int lcdlinenum;
void dual_printf(char* a){
pc.printf(a);
pc.printf("\r\n");
lcd_clear_line(lcdlinenum);
lcd_printf(a);
if(lcdlinenum > 3){
lcdlinenum = 1;
}else{
lcdlinenum++;
}
}
/********************************************************************
lcd default
********************************************************************/
void lcd_default()
{
lcdlinenum = 1;
lcd.frequency(10000);
lcd_clear();
lcd_set_contrast( 40 );
lcd_backlight_level( 8 );
lcd_cursor_blink(1);
}
/********************************************************************
lcd clear
********************************************************************/
void lcd_clear()
{
char data[10];
data[0] = 0xFE;
data[1] = 0x51;
lcd.write(LCDADDR, data, 2, false);
wait_ms(2);
}
/********************************************************************
lcd home
********************************************************************/
void lcd_home()
{
char data[10];
data[0] = 0xFE;
data[1] = 0x46;
lcd.write(LCDADDR, data, 2, false);
wait_ms(2);
}
void lcd_printf(char* message){
lcd.write(LCDADDR, message, strlen(message), false);
}
/********************************************************************
clear one line of display
********************************************************************/
void lcd_clear_line(unsigned int line)
{
switch (line){
case 1:
lcd_goto( LINE1_BEGIN );
lcd_printf(" ");
lcd_goto( LINE1_BEGIN );
break;
case 2:
lcd_goto( LINE2_BEGIN );
lcd_printf(" ");
lcd_goto( LINE2_BEGIN );
break;
case 3:
lcd_goto( LINE3_BEGIN );
lcd_printf(" ");
lcd_goto( LINE3_BEGIN );
break;
case 4:
lcd_goto( LINE4_BEGIN );
lcd_printf(" ");
lcd_goto( LINE4_BEGIN );
break;
default:
break;
}
wait_ms(5);
}
void lcd_cursor_blink(bool blink){
char data[10];
data[0] = 0xFE;
if(blink){
data[1] = 0x4b;
}else{
data[1] = 0x4c;
}
lcd.write(LCDADDR, data, 2, false);
wait_ms(2);
}
/********************************************************************
lcd cursor goto
********************************************************************/
void lcd_goto(unsigned int position)
{
char data[10];
data[0] = 0xFE;
data[1] = 0x45;
data[2] = position;
lcd.write(LCDADDR, data, 3, false);
wait_ms(2);
}
/********************************************************************
lcd set contrast
********************************************************************/
void lcd_set_contrast(unsigned int level)
{
if(level > 50){ level = 50; }
char data[10];
data[0] = 0xFE;
data[1] = 0x52;
data[2] = level;
lcd.write(LCDADDR, data, 3, false);
wait_ms(10);
}
/********************************************************************
lcd set backlight level
********************************************************************/
void lcd_backlight_level(unsigned int level)
{
if(level > 8){ level = 8; }
char data[10];
data[0] = 0xFE;
data[1] = 0x53;
data[2] = level;
lcd.write(LCDADDR, data, 3, false);
wait_ms(2);
}
/********************************************************************
lcd set backlight level
********************************************************************/
void lcd_shift_right()
{
char data[10];
data[0] = 0xFE;
data[1] = 0x56;
lcd.write(LCDADDR, data, 2, false);
wait_ms(1);
}
/********************************************************************
lcd set backlight level
********************************************************************/
void lcd_shift_left()
{
char data[10];
data[0] = 0xFE;
data[1] = 0x55;
lcd.write(LCDADDR, data, 2, false);
wait_ms(1);
}
/********************************************************************
lcd set backlight level
********************************************************************/
void lcd_cursor_right()
{
char data[10];
data[0] = 0xFE;
data[1] = 0x4A;
lcd.write(LCDADDR, data, 2, false);
wait_ms(1);
}
/********************************************************************
lcd set backlight level
********************************************************************/
void lcd_cursor_left()
{
char data[10];
data[0] = 0xFE;
data[1] = 0x49;
lcd.write(LCDADDR, data, 2, false);
wait_ms(1);
}
/********************************************************************
lcd set backlight level
********************************************************************/
void lcd_backspace()
{
char data[10];
data[0] = 0xFE;
data[1] = 0x4E;
lcd.write(LCDADDR, data, 2, false);
wait_ms(1);
}
