Kenji Arai
/
LPC1114_SPI_LCD_ST7565family_test
Controller chip is ST7565
SPI LCD: AQM1248A (Akizuki) or AD-12864-SPI (antendo)
main.cpp
- Committer:
- kenjiArai
- Date:
- 2014-09-21
- Revision:
- 0:9709d02918e1
- Child:
- 3:031024851a8d
File content as of revision 0:9709d02918e1:
/* * mbed Application program for the mbed LPC1114FN28 * * AD-12864-SPI / 128 x 64 dots / Interface: SPI * http://www.aitendo.com/product/1622 * * Copyright (c) 2014 Kenji Arai / JH1PJL * http://www.page.sannet.ne.jp/kenjia/index.html * http://mbed.org/users/kenjiArai/ * Created: September 14th, 2014 * Revised: September 21st, 2014 * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ // Include --------------------------------------------------------------------------------------- #include "mbed.h" #include "ST7565_SPI_LCD.h" // Definition ------------------------------------------------------------------------------------ #define USE_COM // use Communication with PC(UART) // Com #ifdef USE_COM #define BAUD(x) pcm.baud(x) #define GETC(x) pcm.getc(x) #define PUTC(x) pcm.putc(x) #define PRINTF(...) pcm.printf(__VA_ARGS__) #define READABLE(x) pcm.readable(x) #else #define BAUD(x) {;} #define GETC(x) {;} #define PUTC(x) {;} #define PRINTF(...) {;} #define READABLE(x) {;} #endif // Object ---------------------------------------------------------------------------------------- // LED DigitalOut myled(dp28); #ifdef USE_COM // com Serial pcm(dp16,dp15); // Communication with Host #endif // SPI LCD #if 1 ST7565 lcd(dp2, dp6, dp10, dp4, dp9, ST7565::AD12864SPI); // mosi, sck, reset, a0, ncs #else SPI spi_lcd(dp2, dp1, dp6); // mosi, miso, sck ST7565 lcd(spi_lcd, dp10, dp4, dp9, ST7565::AD12864SPI); // spi, reset, a0, ncs #endif #if 0 ST7565 lcd(dp2, dp6, dp10, dp4, dp9, ST7565::AQM1248A); // mosi, sck, reset, a0, ncs #endif // RAM ------------------------------------------------------------------------------------------- // ROM / Constant data --------------------------------------------------------------------------- // Function prototypes --------------------------------------------------------------------------- // Function prototypes --------------------------------------------------------------------------- //------------------------------------------------------------------------------------------------- // Control Program //------------------------------------------------------------------------------------------------- int main() { uint8_t c; uint8_t i,k = 0; myled = 0; lcd.cls(); lcd.set_contrast(0x06); lcd.printf("test\r\n" ); lcd.printf("Kenji Arai / JH1PJL\r\n" ); lcd.printf("ABCDEFG 1234567890\r\n" ); lcd.rect(5,30,120,62,1); lcd.circle(5,35,5,1); lcd.fillcircle(60,55,5,1); lcd.line(0,30,127,63,1); PRINTF("\r\nJH1PJL\r\n"); PRINTF("H:%d W:%d\r\n", lcd.height(), lcd.width()); while(1){ #if 1 myled = !myled; c = GETC(); PUTC(c); if (c == '\b'){ myled = 0; break; } lcd.putc(c); #else // check best contrast uint8_t px = 0; for (px = 0; px < 0x40; px++){ c = GETC(); lcd.set_contrast(px); PRINTF("0x%x\r\n",px); } #endif } while(1){ i = 10 - k; k++; c = GETC(); lcd.rect(10, i, 100, 50, 1); c = GETC(); lcd.circle(10,10,i,1); c = GETC(); lcd.fillcircle(50,40,i,1); c = GETC(); lcd.line(0, 0, 110-i, 60, 1); c = GETC(); if (c == '\b'){ myled = 0; break; } } while(1){ lcd.cls(); lcd.locate(4, 32); lcd.printf("JH1PJL" ); } }