mbed code for Farrari board
Dependencies: DDRO_Farrari mbed
Fork of DDRO_Farrari by
lcd.cpp
00001 #include "mbed.h" 00002 #include "lcd.h" 00003 00004 int lcdlinenum; 00005 00006 void dual_printf(char* a){ 00007 pc.printf(a); 00008 pc.printf("\r\n"); 00009 00010 lcd_clear_line(lcdlinenum); 00011 00012 lcd_printf(a); 00013 if(lcdlinenum > 3){ 00014 lcdlinenum = 1; 00015 }else{ 00016 lcdlinenum++; 00017 } 00018 } 00019 00020 /******************************************************************** 00021 lcd default 00022 ********************************************************************/ 00023 void lcd_default() 00024 { 00025 lcdlinenum = 1; 00026 lcd.frequency(10000); 00027 lcd_clear(); 00028 lcd_set_contrast( 40 ); 00029 lcd_backlight_level( 8 ); 00030 lcd_cursor_blink(1); 00031 } 00032 /******************************************************************** 00033 lcd clear 00034 ********************************************************************/ 00035 void lcd_clear() 00036 { 00037 char data[10]; 00038 data[0] = 0xFE; 00039 data[1] = 0x51; 00040 lcd.write(LCDADDR, data, 2, false); 00041 wait_ms(2); 00042 } 00043 /******************************************************************** 00044 lcd home 00045 ********************************************************************/ 00046 void lcd_home() 00047 { 00048 char data[10]; 00049 data[0] = 0xFE; 00050 data[1] = 0x46; 00051 lcd.write(LCDADDR, data, 2, false); 00052 wait_ms(2); 00053 } 00054 00055 void lcd_printf(char* message){ 00056 lcd.write(LCDADDR, message, strlen(message), false); 00057 } 00058 00059 /******************************************************************** 00060 clear one line of display 00061 ********************************************************************/ 00062 void lcd_clear_line(unsigned int line) 00063 { 00064 switch (line){ 00065 case 1: 00066 lcd_goto( LINE1_BEGIN ); 00067 lcd_printf(" "); 00068 lcd_goto( LINE1_BEGIN ); 00069 break; 00070 case 2: 00071 lcd_goto( LINE2_BEGIN ); 00072 lcd_printf(" "); 00073 lcd_goto( LINE2_BEGIN ); 00074 break; 00075 case 3: 00076 lcd_goto( LINE3_BEGIN ); 00077 lcd_printf(" "); 00078 lcd_goto( LINE3_BEGIN ); 00079 break; 00080 case 4: 00081 lcd_goto( LINE4_BEGIN ); 00082 lcd_printf(" "); 00083 lcd_goto( LINE4_BEGIN ); 00084 break; 00085 default: 00086 break; 00087 } 00088 wait_ms(5); 00089 } 00090 00091 void lcd_cursor_blink(bool blink){ 00092 char data[10]; 00093 data[0] = 0xFE; 00094 if(blink){ 00095 data[1] = 0x4b; 00096 }else{ 00097 data[1] = 0x4c; 00098 } 00099 00100 lcd.write(LCDADDR, data, 2, false); 00101 00102 wait_ms(2); 00103 } 00104 00105 /******************************************************************** 00106 lcd cursor goto 00107 ********************************************************************/ 00108 void lcd_goto(unsigned int position) 00109 { 00110 char data[10]; 00111 data[0] = 0xFE; 00112 data[1] = 0x45; 00113 data[2] = position; 00114 lcd.write(LCDADDR, data, 3, false); 00115 00116 wait_ms(2); 00117 } 00118 /******************************************************************** 00119 lcd set contrast 00120 ********************************************************************/ 00121 void lcd_set_contrast(unsigned int level) 00122 { 00123 if(level > 50){ level = 50; } 00124 00125 char data[10]; 00126 data[0] = 0xFE; 00127 data[1] = 0x52; 00128 data[2] = level; 00129 lcd.write(LCDADDR, data, 3, false); 00130 00131 wait_ms(10); 00132 } 00133 /******************************************************************** 00134 lcd set backlight level 00135 ********************************************************************/ 00136 void lcd_backlight_level(unsigned int level) 00137 { 00138 if(level > 8){ level = 8; } 00139 00140 char data[10]; 00141 data[0] = 0xFE; 00142 data[1] = 0x53; 00143 data[2] = level; 00144 lcd.write(LCDADDR, data, 3, false); 00145 00146 wait_ms(2); 00147 } 00148 /******************************************************************** 00149 lcd set backlight level 00150 ********************************************************************/ 00151 void lcd_shift_right() 00152 { 00153 char data[10]; 00154 data[0] = 0xFE; 00155 data[1] = 0x56; 00156 lcd.write(LCDADDR, data, 2, false); 00157 00158 wait_ms(1); 00159 } 00160 /******************************************************************** 00161 lcd set backlight level 00162 ********************************************************************/ 00163 void lcd_shift_left() 00164 { 00165 char data[10]; 00166 data[0] = 0xFE; 00167 data[1] = 0x55; 00168 lcd.write(LCDADDR, data, 2, false); 00169 00170 wait_ms(1); 00171 } 00172 /******************************************************************** 00173 lcd set backlight level 00174 ********************************************************************/ 00175 void lcd_cursor_right() 00176 { 00177 char data[10]; 00178 data[0] = 0xFE; 00179 data[1] = 0x4A; 00180 lcd.write(LCDADDR, data, 2, false); 00181 00182 wait_ms(1); 00183 } 00184 /******************************************************************** 00185 lcd set backlight level 00186 ********************************************************************/ 00187 void lcd_cursor_left() 00188 { 00189 char data[10]; 00190 data[0] = 0xFE; 00191 data[1] = 0x49; 00192 lcd.write(LCDADDR, data, 2, false); 00193 00194 wait_ms(1); 00195 } 00196 /******************************************************************** 00197 lcd set backlight level 00198 ********************************************************************/ 00199 void lcd_backspace() 00200 { 00201 char data[10]; 00202 data[0] = 0xFE; 00203 data[1] = 0x4E; 00204 lcd.write(LCDADDR, data, 2, false); 00205 00206 wait_ms(1); 00207 }
Generated on Wed Jul 27 2022 00:15:18 by
1.7.2
