Zimin Wang / Mbed 2 deprecated DDRO_Farrari

Dependencies:   mbed-rtos mbed

Fork of DDRO_Farrari by Liangzhen Lai

Committer:
liangzhen
Date:
Mon Oct 07 22:58:19 2013 +0000
Revision:
0:84a8bcfbdec9
power sensor tested;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
liangzhen 0:84a8bcfbdec9 1 #include "mbed.h"
liangzhen 0:84a8bcfbdec9 2 #include "lcd.h"
liangzhen 0:84a8bcfbdec9 3
liangzhen 0:84a8bcfbdec9 4 int lcdlinenum;
liangzhen 0:84a8bcfbdec9 5
liangzhen 0:84a8bcfbdec9 6 void dual_printf(char* a){
liangzhen 0:84a8bcfbdec9 7 pc.printf(a);
liangzhen 0:84a8bcfbdec9 8 pc.printf("\r\n");
liangzhen 0:84a8bcfbdec9 9
liangzhen 0:84a8bcfbdec9 10 lcd_clear_line(lcdlinenum);
liangzhen 0:84a8bcfbdec9 11
liangzhen 0:84a8bcfbdec9 12 lcd_printf(a);
liangzhen 0:84a8bcfbdec9 13 if(lcdlinenum > 3){
liangzhen 0:84a8bcfbdec9 14 lcdlinenum = 1;
liangzhen 0:84a8bcfbdec9 15 }else{
liangzhen 0:84a8bcfbdec9 16 lcdlinenum++;
liangzhen 0:84a8bcfbdec9 17 }
liangzhen 0:84a8bcfbdec9 18 }
liangzhen 0:84a8bcfbdec9 19
liangzhen 0:84a8bcfbdec9 20 /********************************************************************
liangzhen 0:84a8bcfbdec9 21 lcd default
liangzhen 0:84a8bcfbdec9 22 ********************************************************************/
liangzhen 0:84a8bcfbdec9 23 void lcd_default()
liangzhen 0:84a8bcfbdec9 24 {
liangzhen 0:84a8bcfbdec9 25 lcdlinenum = 1;
liangzhen 0:84a8bcfbdec9 26 lcd.frequency(10000);
liangzhen 0:84a8bcfbdec9 27 lcd_clear();
liangzhen 0:84a8bcfbdec9 28 lcd_set_contrast( 40 );
liangzhen 0:84a8bcfbdec9 29 lcd_backlight_level( 8 );
liangzhen 0:84a8bcfbdec9 30 lcd_cursor_blink(1);
liangzhen 0:84a8bcfbdec9 31 }
liangzhen 0:84a8bcfbdec9 32 /********************************************************************
liangzhen 0:84a8bcfbdec9 33 lcd clear
liangzhen 0:84a8bcfbdec9 34 ********************************************************************/
liangzhen 0:84a8bcfbdec9 35 void lcd_clear()
liangzhen 0:84a8bcfbdec9 36 {
liangzhen 0:84a8bcfbdec9 37 char data[10];
liangzhen 0:84a8bcfbdec9 38 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 39 data[1] = 0x51;
liangzhen 0:84a8bcfbdec9 40 lcd.write(LCDADDR, data, 2, false);
liangzhen 0:84a8bcfbdec9 41 wait_ms(2);
liangzhen 0:84a8bcfbdec9 42 }
liangzhen 0:84a8bcfbdec9 43 /********************************************************************
liangzhen 0:84a8bcfbdec9 44 lcd home
liangzhen 0:84a8bcfbdec9 45 ********************************************************************/
liangzhen 0:84a8bcfbdec9 46 void lcd_home()
liangzhen 0:84a8bcfbdec9 47 {
liangzhen 0:84a8bcfbdec9 48 char data[10];
liangzhen 0:84a8bcfbdec9 49 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 50 data[1] = 0x46;
liangzhen 0:84a8bcfbdec9 51 lcd.write(LCDADDR, data, 2, false);
liangzhen 0:84a8bcfbdec9 52 wait_ms(2);
liangzhen 0:84a8bcfbdec9 53 }
liangzhen 0:84a8bcfbdec9 54
liangzhen 0:84a8bcfbdec9 55 void lcd_printf(char* message){
liangzhen 0:84a8bcfbdec9 56 lcd.write(LCDADDR, message, strlen(message), false);
liangzhen 0:84a8bcfbdec9 57 }
liangzhen 0:84a8bcfbdec9 58
liangzhen 0:84a8bcfbdec9 59 /********************************************************************
liangzhen 0:84a8bcfbdec9 60 clear one line of display
liangzhen 0:84a8bcfbdec9 61 ********************************************************************/
liangzhen 0:84a8bcfbdec9 62 void lcd_clear_line(unsigned int line)
liangzhen 0:84a8bcfbdec9 63 {
liangzhen 0:84a8bcfbdec9 64 switch (line){
liangzhen 0:84a8bcfbdec9 65 case 1:
liangzhen 0:84a8bcfbdec9 66 lcd_goto( LINE1_BEGIN );
liangzhen 0:84a8bcfbdec9 67 lcd_printf(" ");
liangzhen 0:84a8bcfbdec9 68 lcd_goto( LINE1_BEGIN );
liangzhen 0:84a8bcfbdec9 69 break;
liangzhen 0:84a8bcfbdec9 70 case 2:
liangzhen 0:84a8bcfbdec9 71 lcd_goto( LINE2_BEGIN );
liangzhen 0:84a8bcfbdec9 72 lcd_printf(" ");
liangzhen 0:84a8bcfbdec9 73 lcd_goto( LINE2_BEGIN );
liangzhen 0:84a8bcfbdec9 74 break;
liangzhen 0:84a8bcfbdec9 75 case 3:
liangzhen 0:84a8bcfbdec9 76 lcd_goto( LINE3_BEGIN );
liangzhen 0:84a8bcfbdec9 77 lcd_printf(" ");
liangzhen 0:84a8bcfbdec9 78 lcd_goto( LINE3_BEGIN );
liangzhen 0:84a8bcfbdec9 79 break;
liangzhen 0:84a8bcfbdec9 80 case 4:
liangzhen 0:84a8bcfbdec9 81 lcd_goto( LINE4_BEGIN );
liangzhen 0:84a8bcfbdec9 82 lcd_printf(" ");
liangzhen 0:84a8bcfbdec9 83 lcd_goto( LINE4_BEGIN );
liangzhen 0:84a8bcfbdec9 84 break;
liangzhen 0:84a8bcfbdec9 85 default:
liangzhen 0:84a8bcfbdec9 86 break;
liangzhen 0:84a8bcfbdec9 87 }
liangzhen 0:84a8bcfbdec9 88 wait_ms(5);
liangzhen 0:84a8bcfbdec9 89 }
liangzhen 0:84a8bcfbdec9 90
liangzhen 0:84a8bcfbdec9 91 void lcd_cursor_blink(bool blink){
liangzhen 0:84a8bcfbdec9 92 char data[10];
liangzhen 0:84a8bcfbdec9 93 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 94 if(blink){
liangzhen 0:84a8bcfbdec9 95 data[1] = 0x4b;
liangzhen 0:84a8bcfbdec9 96 }else{
liangzhen 0:84a8bcfbdec9 97 data[1] = 0x4c;
liangzhen 0:84a8bcfbdec9 98 }
liangzhen 0:84a8bcfbdec9 99
liangzhen 0:84a8bcfbdec9 100 lcd.write(LCDADDR, data, 2, false);
liangzhen 0:84a8bcfbdec9 101
liangzhen 0:84a8bcfbdec9 102 wait_ms(2);
liangzhen 0:84a8bcfbdec9 103 }
liangzhen 0:84a8bcfbdec9 104
liangzhen 0:84a8bcfbdec9 105 /********************************************************************
liangzhen 0:84a8bcfbdec9 106 lcd cursor goto
liangzhen 0:84a8bcfbdec9 107 ********************************************************************/
liangzhen 0:84a8bcfbdec9 108 void lcd_goto(unsigned int position)
liangzhen 0:84a8bcfbdec9 109 {
liangzhen 0:84a8bcfbdec9 110 char data[10];
liangzhen 0:84a8bcfbdec9 111 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 112 data[1] = 0x45;
liangzhen 0:84a8bcfbdec9 113 data[2] = position;
liangzhen 0:84a8bcfbdec9 114 lcd.write(LCDADDR, data, 3, false);
liangzhen 0:84a8bcfbdec9 115
liangzhen 0:84a8bcfbdec9 116 wait_ms(2);
liangzhen 0:84a8bcfbdec9 117 }
liangzhen 0:84a8bcfbdec9 118 /********************************************************************
liangzhen 0:84a8bcfbdec9 119 lcd set contrast
liangzhen 0:84a8bcfbdec9 120 ********************************************************************/
liangzhen 0:84a8bcfbdec9 121 void lcd_set_contrast(unsigned int level)
liangzhen 0:84a8bcfbdec9 122 {
liangzhen 0:84a8bcfbdec9 123 if(level > 50){ level = 50; }
liangzhen 0:84a8bcfbdec9 124
liangzhen 0:84a8bcfbdec9 125 char data[10];
liangzhen 0:84a8bcfbdec9 126 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 127 data[1] = 0x52;
liangzhen 0:84a8bcfbdec9 128 data[2] = level;
liangzhen 0:84a8bcfbdec9 129 lcd.write(LCDADDR, data, 3, false);
liangzhen 0:84a8bcfbdec9 130
liangzhen 0:84a8bcfbdec9 131 wait_ms(10);
liangzhen 0:84a8bcfbdec9 132 }
liangzhen 0:84a8bcfbdec9 133 /********************************************************************
liangzhen 0:84a8bcfbdec9 134 lcd set backlight level
liangzhen 0:84a8bcfbdec9 135 ********************************************************************/
liangzhen 0:84a8bcfbdec9 136 void lcd_backlight_level(unsigned int level)
liangzhen 0:84a8bcfbdec9 137 {
liangzhen 0:84a8bcfbdec9 138 if(level > 8){ level = 8; }
liangzhen 0:84a8bcfbdec9 139
liangzhen 0:84a8bcfbdec9 140 char data[10];
liangzhen 0:84a8bcfbdec9 141 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 142 data[1] = 0x53;
liangzhen 0:84a8bcfbdec9 143 data[2] = level;
liangzhen 0:84a8bcfbdec9 144 lcd.write(LCDADDR, data, 3, false);
liangzhen 0:84a8bcfbdec9 145
liangzhen 0:84a8bcfbdec9 146 wait_ms(2);
liangzhen 0:84a8bcfbdec9 147 }
liangzhen 0:84a8bcfbdec9 148 /********************************************************************
liangzhen 0:84a8bcfbdec9 149 lcd set backlight level
liangzhen 0:84a8bcfbdec9 150 ********************************************************************/
liangzhen 0:84a8bcfbdec9 151 void lcd_shift_right()
liangzhen 0:84a8bcfbdec9 152 {
liangzhen 0:84a8bcfbdec9 153 char data[10];
liangzhen 0:84a8bcfbdec9 154 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 155 data[1] = 0x56;
liangzhen 0:84a8bcfbdec9 156 lcd.write(LCDADDR, data, 2, false);
liangzhen 0:84a8bcfbdec9 157
liangzhen 0:84a8bcfbdec9 158 wait_ms(1);
liangzhen 0:84a8bcfbdec9 159 }
liangzhen 0:84a8bcfbdec9 160 /********************************************************************
liangzhen 0:84a8bcfbdec9 161 lcd set backlight level
liangzhen 0:84a8bcfbdec9 162 ********************************************************************/
liangzhen 0:84a8bcfbdec9 163 void lcd_shift_left()
liangzhen 0:84a8bcfbdec9 164 {
liangzhen 0:84a8bcfbdec9 165 char data[10];
liangzhen 0:84a8bcfbdec9 166 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 167 data[1] = 0x55;
liangzhen 0:84a8bcfbdec9 168 lcd.write(LCDADDR, data, 2, false);
liangzhen 0:84a8bcfbdec9 169
liangzhen 0:84a8bcfbdec9 170 wait_ms(1);
liangzhen 0:84a8bcfbdec9 171 }
liangzhen 0:84a8bcfbdec9 172 /********************************************************************
liangzhen 0:84a8bcfbdec9 173 lcd set backlight level
liangzhen 0:84a8bcfbdec9 174 ********************************************************************/
liangzhen 0:84a8bcfbdec9 175 void lcd_cursor_right()
liangzhen 0:84a8bcfbdec9 176 {
liangzhen 0:84a8bcfbdec9 177 char data[10];
liangzhen 0:84a8bcfbdec9 178 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 179 data[1] = 0x4A;
liangzhen 0:84a8bcfbdec9 180 lcd.write(LCDADDR, data, 2, false);
liangzhen 0:84a8bcfbdec9 181
liangzhen 0:84a8bcfbdec9 182 wait_ms(1);
liangzhen 0:84a8bcfbdec9 183 }
liangzhen 0:84a8bcfbdec9 184 /********************************************************************
liangzhen 0:84a8bcfbdec9 185 lcd set backlight level
liangzhen 0:84a8bcfbdec9 186 ********************************************************************/
liangzhen 0:84a8bcfbdec9 187 void lcd_cursor_left()
liangzhen 0:84a8bcfbdec9 188 {
liangzhen 0:84a8bcfbdec9 189 char data[10];
liangzhen 0:84a8bcfbdec9 190 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 191 data[1] = 0x49;
liangzhen 0:84a8bcfbdec9 192 lcd.write(LCDADDR, data, 2, false);
liangzhen 0:84a8bcfbdec9 193
liangzhen 0:84a8bcfbdec9 194 wait_ms(1);
liangzhen 0:84a8bcfbdec9 195 }
liangzhen 0:84a8bcfbdec9 196 /********************************************************************
liangzhen 0:84a8bcfbdec9 197 lcd set backlight level
liangzhen 0:84a8bcfbdec9 198 ********************************************************************/
liangzhen 0:84a8bcfbdec9 199 void lcd_backspace()
liangzhen 0:84a8bcfbdec9 200 {
liangzhen 0:84a8bcfbdec9 201 char data[10];
liangzhen 0:84a8bcfbdec9 202 data[0] = 0xFE;
liangzhen 0:84a8bcfbdec9 203 data[1] = 0x4E;
liangzhen 0:84a8bcfbdec9 204 lcd.write(LCDADDR, data, 2, false);
liangzhen 0:84a8bcfbdec9 205
liangzhen 0:84a8bcfbdec9 206 wait_ms(1);
liangzhen 0:84a8bcfbdec9 207 }