Kaoru Onoe
/
ST7565SPI_Test
Example of library ST7565SPI: Driver library for ST7565 graphics LCD controller over SPI interface.
main.cpp@0:d53b674e7f03, 2015-03-01 (annotated)
- Committer:
- kayekss
- Date:
- Sun Mar 01 19:30:56 2015 +0000
- Revision:
- 0:d53b674e7f03
Example of library ST7565SPI: Driver library for ST7565 graphics LCD controller over SPI interface.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kayekss | 0:d53b674e7f03 | 1 | #include "mbed.h" |
kayekss | 0:d53b674e7f03 | 2 | #include "ST7565SPI.h" |
kayekss | 0:d53b674e7f03 | 3 | |
kayekss | 0:d53b674e7f03 | 4 | ST7565SPI lcd(/*MOSI*/ p5, /*SCK*/ p7, /*CS*/ p8, |
kayekss | 0:d53b674e7f03 | 5 | /*RS*/ p11, /*RST*/ p12, /*Frequency*/ 1000000); |
kayekss | 0:d53b674e7f03 | 6 | |
kayekss | 0:d53b674e7f03 | 7 | // Dithered gray patterns |
kayekss | 0:d53b674e7f03 | 8 | uint8_t const pattern[8][4] = { |
kayekss | 0:d53b674e7f03 | 9 | { 0xff, 0xff, 0xff, 0xff }, // 100% |
kayekss | 0:d53b674e7f03 | 10 | { 0x77, 0xff, 0xdd, 0xff }, // 87.5% |
kayekss | 0:d53b674e7f03 | 11 | { 0x55, 0xff, 0x55, 0xff }, // 75% |
kayekss | 0:d53b674e7f03 | 12 | { 0x55, 0xbb, 0x55, 0xee }, // 62.5% |
kayekss | 0:d53b674e7f03 | 13 | { 0x55, 0xaa, 0x55, 0xaa }, // 50% |
kayekss | 0:d53b674e7f03 | 14 | { 0x55, 0x22, 0x55, 0x88 }, // 37.5% |
kayekss | 0:d53b674e7f03 | 15 | { 0x55, 0x00, 0x55, 0x00 }, // 25% |
kayekss | 0:d53b674e7f03 | 16 | { 0x11, 0x00, 0x44, 0x00 } // 12.5% |
kayekss | 0:d53b674e7f03 | 17 | }; |
kayekss | 0:d53b674e7f03 | 18 | |
kayekss | 0:d53b674e7f03 | 19 | int main(void) { |
kayekss | 0:d53b674e7f03 | 20 | // Initialize LCD |
kayekss | 0:d53b674e7f03 | 21 | lcd.init(/*V0*/ 3, /*Contrast*/ 48, /*Bias*/ ST7565SPI::Bias1_9); |
kayekss | 0:d53b674e7f03 | 22 | |
kayekss | 0:d53b674e7f03 | 23 | // Draw horizontal stripes |
kayekss | 0:d53b674e7f03 | 24 | for (uint8_t j = 0; j < 8; j++) { |
kayekss | 0:d53b674e7f03 | 25 | lcd.setPage(j); |
kayekss | 0:d53b674e7f03 | 26 | lcd.setColumn(0); |
kayekss | 0:d53b674e7f03 | 27 | for (uint8_t i = 0; i < 128 / 4; i++) { |
kayekss | 0:d53b674e7f03 | 28 | lcd.data(pattern[j][0]); |
kayekss | 0:d53b674e7f03 | 29 | lcd.data(pattern[j][1]); |
kayekss | 0:d53b674e7f03 | 30 | lcd.data(pattern[j][2]); |
kayekss | 0:d53b674e7f03 | 31 | lcd.data(pattern[j][3]); |
kayekss | 0:d53b674e7f03 | 32 | } |
kayekss | 0:d53b674e7f03 | 33 | } |
kayekss | 0:d53b674e7f03 | 34 | |
kayekss | 0:d53b674e7f03 | 35 | // Scroll entire display by changing line offset values |
kayekss | 0:d53b674e7f03 | 36 | uint8_t c = 0; |
kayekss | 0:d53b674e7f03 | 37 | while (1) { |
kayekss | 0:d53b674e7f03 | 38 | lcd.command(ST7565SPI::COMMON_OFFSET + c); |
kayekss | 0:d53b674e7f03 | 39 | if (c == 0) { |
kayekss | 0:d53b674e7f03 | 40 | c = 63; |
kayekss | 0:d53b674e7f03 | 41 | } else { |
kayekss | 0:d53b674e7f03 | 42 | c--; |
kayekss | 0:d53b674e7f03 | 43 | } |
kayekss | 0:d53b674e7f03 | 44 | wait(.25); |
kayekss | 0:d53b674e7f03 | 45 | } |
kayekss | 0:d53b674e7f03 | 46 | } |