test
Dependencies: 4DGL-uLCD-SE mbed
main.cpp@0:5dca0ddf051f, 2016-01-30 (annotated)
- Committer:
- wye11
- Date:
- Sat Jan 30 06:01:10 2016 +0000
- Revision:
- 0:5dca0ddf051f
- Child:
- 1:232add586315
test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wye11 | 0:5dca0ddf051f | 1 | // Demo for the uLCD-144-G2 based on the work by Jim Hamblen |
wye11 | 0:5dca0ddf051f | 2 | |
wye11 | 0:5dca0ddf051f | 3 | #include "mbed.h" |
wye11 | 0:5dca0ddf051f | 4 | #include "uLCD_4DGL.h" |
wye11 | 0:5dca0ddf051f | 5 | |
wye11 | 0:5dca0ddf051f | 6 | // TX, RX, and RES pins |
wye11 | 0:5dca0ddf051f | 7 | uLCD_4DGL uLCD(p9,p10,p11); |
wye11 | 0:5dca0ddf051f | 8 | |
wye11 | 0:5dca0ddf051f | 9 | int main() { |
wye11 | 0:5dca0ddf051f | 10 | |
wye11 | 0:5dca0ddf051f | 11 | int x; |
wye11 | 0:5dca0ddf051f | 12 | int y; |
wye11 | 0:5dca0ddf051f | 13 | int radius; |
wye11 | 0:5dca0ddf051f | 14 | int vx; |
wye11 | 0:5dca0ddf051f | 15 | |
wye11 | 0:5dca0ddf051f | 16 | // Set our UART baudrate to something reasonable |
wye11 | 0:5dca0ddf051f | 17 | uLCD.baudrate(115200); |
wye11 | 0:5dca0ddf051f | 18 | |
wye11 | 0:5dca0ddf051f | 19 | // Change background color (must be called before cls) |
wye11 | 0:5dca0ddf051f | 20 | uLCD.background_color(WHITE); |
wye11 | 0:5dca0ddf051f | 21 | |
wye11 | 0:5dca0ddf051f | 22 | // Clear screen with background color |
wye11 | 0:5dca0ddf051f | 23 | uLCD.cls(); |
wye11 | 0:5dca0ddf051f | 24 | |
wye11 | 0:5dca0ddf051f | 25 | // Change background color of text |
wye11 | 0:5dca0ddf051f | 26 | uLCD.textbackground_color(WHITE); |
wye11 | 0:5dca0ddf051f | 27 | |
wye11 | 0:5dca0ddf051f | 28 | // Make some colorful text |
wye11 | 0:5dca0ddf051f | 29 | uLCD.locate(4, 1); // Move cursor |
wye11 | 0:5dca0ddf051f | 30 | uLCD.color(BLUE); |
wye11 | 0:5dca0ddf051f | 31 | uLCD.printf("This is a\n"); |
wye11 | 0:5dca0ddf051f | 32 | uLCD.locate(5, 3); // Move cursor |
wye11 | 0:5dca0ddf051f | 33 | uLCD.text_width(2); // 2x normal size |
wye11 | 0:5dca0ddf051f | 34 | uLCD.text_height(2); // 2x normal size |
wye11 | 0:5dca0ddf051f | 35 | uLCD.color(RED); // Change text color |
wye11 | 0:5dca0ddf051f | 36 | uLCD.printf("TEST"); |
wye11 | 0:5dca0ddf051f | 37 | uLCD.text_width(1); // Normal size |
wye11 | 0:5dca0ddf051f | 38 | uLCD.text_height(1); // Normal size |
wye11 | 0:5dca0ddf051f | 39 | uLCD.locate(3, 6); // Move cursor |
wye11 | 0:5dca0ddf051f | 40 | uLCD.color(BLACK); // Change text color |
wye11 | 0:5dca0ddf051f | 41 | uLCD.printf("of my new LCD"); |
wye11 | 0:5dca0ddf051f | 42 | |
wye11 | 0:5dca0ddf051f | 43 | // Initial parameters for the circle |
wye11 | 0:5dca0ddf051f | 44 | x = 50; |
wye11 | 0:5dca0ddf051f | 45 | y = 100; |
wye11 | 0:5dca0ddf051f | 46 | radius = 4; |
wye11 | 0:5dca0ddf051f | 47 | vx = 1; |
wye11 | 0:5dca0ddf051f | 48 | |
wye11 | 0:5dca0ddf051f | 49 | // Make a ball bounce back and forth |
wye11 | 0:5dca0ddf051f | 50 | while (1) { |
wye11 | 0:5dca0ddf051f | 51 | |
wye11 | 0:5dca0ddf051f | 52 | // Draw a dark green |
wye11 | 0:5dca0ddf051f | 53 | uLCD.filled_circle(x, y, radius, 0x008000); |
wye11 | 0:5dca0ddf051f | 54 | |
wye11 | 0:5dca0ddf051f | 55 | // Bounce off the edges |
wye11 | 0:5dca0ddf051f | 56 | if ((x <= radius + 1) || (x >= 126 - radius)) { |
wye11 | 0:5dca0ddf051f | 57 | vx = -1 * vx; |
wye11 | 0:5dca0ddf051f | 58 | } |
wye11 | 0:5dca0ddf051f | 59 | |
wye11 | 0:5dca0ddf051f | 60 | // Wait before erasing old circle |
wye11 | 0:5dca0ddf051f | 61 | wait(0.02); // In seconds |
wye11 | 0:5dca0ddf051f | 62 | |
wye11 | 0:5dca0ddf051f | 63 | // Erase old circle |
wye11 | 0:5dca0ddf051f | 64 | uLCD.filled_circle(x, y, radius, WHITE); |
wye11 | 0:5dca0ddf051f | 65 | |
wye11 | 0:5dca0ddf051f | 66 | // Move circle |
wye11 | 0:5dca0ddf051f | 67 | x = x + vx; |
wye11 | 0:5dca0ddf051f | 68 | } |
wye11 | 0:5dca0ddf051f | 69 | } |