
Controller chip is ST7565
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 /* 00002 * mbed Application program for the mbed LPC1114FN28 00003 * 00004 * Copyright (c) 2014,'20,'21 Kenji Arai / JH1PJL 00005 * http://www7b.biglobe.ne.jp/~kenjia/ 00006 * https://os.mbed.com/users/kenjiArai/ 00007 * Created: September 14th, 2014 00008 * Revised: September 21st, 2014 00009 * Revised: February 27th, 2021 00010 */ 00011 /* 00012 Tested LCD 00013 1) AD-12864-SPI / 128 x 64 dots / Interface: SPI 00014 http://www.aitendo.com/product/1622 00015 00016 1)CSI 2)RES 3)A0 4)SCK 5)SDI 6)3.3V 7)GND 8)LED_A 00017 dp9 dp10 dp4 dp6 dp2 +3.3V GND +3.3V(51 ohm) 00018 00019 2) AE-AQM1248(AQM1248A-RN-FBW-P) / 128 x 48 dots / Interface: SPI 00020 http://akizukidenshi.com/catalog/g/gK-07007/ 00021 http://akizukidenshi.com/catalog/g/gP-07005/ 00022 00023 1)VDD 2)/CS 3)/RES 4)RS 5)SCLK 6)SDI 7)GND 00024 +3.3V dp9 dp10 dp4 dp6 dp2 GND 00025 */ 00026 00027 // Include -------------------------------------------------------------------- 00028 #include "mbed.h" 00029 #include "ST7565_SPI_LCD.h" 00030 #include "uart_as_stdio.h" 00031 00032 // Definition ----------------------------------------------------------------- 00033 //#define AITENDO 00034 #define AKIZUKI 00035 00036 #if defined(AITENDO) && defined(AKIZUKI) 00037 # error "Please choose one!!" 00038 #elif defined(AITENDO) 00039 # define MAX_Y 64 00040 # define CONTRAST 0x32 00041 #elif defined(AKIZUKI) 00042 # define MAX_Y 48 00043 # define CONTRAST 0x24 00044 #else 00045 # error "Please choose AKIZUKI or AITENDO" 00046 #endif 00047 00048 #define Y0 (MAX_Y - 2) 00049 #define Y1 (MAX_Y - 9) 00050 #define Y2 (MAX_Y - 1) 00051 00052 //#define ADJ_CONTRAST 00053 00054 // Object --------------------------------------------------------------------- 00055 // LED 00056 DigitalOut myled(dp28); 00057 00058 // SPI LCD 00059 #if defined(AITENDO) 00060 # if 1 00061 // mosi, sck, reset, a0, ncs 00062 ST7565 lcd(dp2, dp6, dp10, dp4, dp9, ST7565::AD12864SPI); 00063 # else 00064 // mosi, miso, sck 00065 SPI spi_lcd(dp2, dp1, dp6); 00066 // spi, reset, a0, ncs 00067 ST7565 lcd(spi_lcd, dp10, dp4, dp9, ST7565::AD12864SPI); 00068 # endif 00069 #elif defined(AKIZUKI) 00070 // mosi, sck, reset, a0, ncs 00071 ST7565 lcd(dp2, dp6, dp10, dp4, dp9, ST7565::AQM1248A); 00072 #endif 00073 00074 // RAM ------------------------------------------------------------------------ 00075 00076 // ROM / Constant data -------------------------------------------------------- 00077 00078 // Function prototypes -------------------------------------------------------- 00079 00080 // Function prototypes -------------------------------------------------------- 00081 extern void print_revision(void); 00082 00083 //------------------------------------------------------------------------------ 00084 // Control Program 00085 //------------------------------------------------------------------------------ 00086 int main() 00087 { 00088 uint8_t c; 00089 00090 print_revision(); 00091 myled = 0; 00092 lcd.cls(); 00093 lcd.set_contrast(CONTRAST); 00094 lcd.printf("test\r\n" ); 00095 lcd.printf("Run on Mbed-os%d.%d.%d\r\n", 00096 MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION); 00097 lcd.printf("1234567890 ABCDEFG\r\n" ); 00098 //lcd.rect(5,30,120,62,1); 00099 lcd.rect(5,30,120,Y0,1); 00100 lcd.circle(5,35,5,1); 00101 //lcd.fillcircle(60,55,5,1); 00102 lcd.fillcircle(60,Y1,5,1); 00103 //lcd.line(0,30,127,63,1); 00104 lcd.line(0,30,127,Y2,1); 00105 printf("Graphic Display example, bin file created on " __DATE__ ".\r\n"); 00106 printf("You can see something on the LCD screen.\r\n"); 00107 printf("H:%d W:%d\r\n", lcd.height(), lcd.width()); 00108 while(true) { 00109 #ifndef ADJ_CONTRAST 00110 myled = !myled; 00111 c = getc(); 00112 putc(c); 00113 if (c == '\b') { // Enter Back Space 00114 myled = 0; 00115 break; 00116 } 00117 lcd.putc(c); 00118 #else 00119 // check best contrast 00120 printf("Entered contrast adjustment mode.\r\n"); 00121 uint8_t px = CONTRAST; 00122 while(true) { 00123 lcd.set_contrast(px); 00124 printf("0x%x\r\n",px); 00125 c = getc(); 00126 if ((c == '-') || (c == 'd')) { 00127 if (px != 0) { 00128 --px; 00129 } 00130 } else { 00131 if (px < 0x40) { 00132 ++px; 00133 } 00134 } 00135 } 00136 #endif 00137 } 00138 while(true) { 00139 uint8_t i,k = 0; 00140 i = 10 - k; 00141 k++; 00142 c = getc(); 00143 lcd.cls(); 00144 lcd.rect(10, i, 100, Y1, 1); 00145 c = getc(); 00146 lcd.circle(10,10,i,1); 00147 c = getc(); 00148 lcd.fillcircle(50,40,i,1); 00149 c = getc(); 00150 lcd.line(0, 0, 110-i, Y1, 1); 00151 c = getc(); 00152 if (c == '\b') { // Enter Back Space 00153 myled = 0; 00154 break; 00155 } 00156 } 00157 lcd.cls(); 00158 lcd.locate(10, 10); 00159 lcd.printf("JH1PJL Mbed-os%d.%d.%d\r\n", 00160 MBED_MAJOR_VERSION, MBED_MINOR_VERSION, MBED_PATCH_VERSION); 00161 while(true) { 00162 ThisThread::sleep_for(100s); 00163 } 00164 }
Generated on Sat Jul 16 2022 19:23:09 by
