Very basic test program for Picaso Serial library.
Dependencies: mbed uLCD_4D_Picaso
main.cpp@2:001d4760263a, 2015-03-11 (annotated)
- Committer:
- admcrae
- Date:
- Wed Mar 11 19:52:34 2015 +0000
- Revision:
- 2:001d4760263a
- Parent:
- 1:9fcad04e0a0d
Rev 2.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
admcrae | 0:c39433c50bf6 | 1 | #include "mbed.h" |
admcrae | 0:c39433c50bf6 | 2 | #include "uLCD_4D_Picaso.h" |
admcrae | 0:c39433c50bf6 | 3 | |
admcrae | 1:9fcad04e0a0d | 4 | /** |
admcrae | 1:9fcad04e0a0d | 5 | * Demo program for uLCD_4D_Picaso resistance touchscreen |
admcrae | 1:9fcad04e0a0d | 6 | * Simple Graphing Application on resistive touchscreen display |
admcrae | 1:9fcad04e0a0d | 7 | * @version 1.0 |
admcrae | 1:9fcad04e0a0d | 8 | * @author Andrew McRae, Tianhao Li |
admcrae | 1:9fcad04e0a0d | 9 | */ |
admcrae | 1:9fcad04e0a0d | 10 | // three pins are: TX RX RESET |
admcrae | 0:c39433c50bf6 | 11 | uLCD_4D_Picaso lcd(p28, p27, p30); |
admcrae | 1:9fcad04e0a0d | 12 | // |
admcrae | 0:c39433c50bf6 | 13 | int main() { |
admcrae | 0:c39433c50bf6 | 14 | wait(1); |
admcrae | 1:9fcad04e0a0d | 15 | // change the baudrate to improve or decrease the latency and plotting quality |
admcrae | 1:9fcad04e0a0d | 16 | lcd.setbaudWait(Picaso::BAUD_600000); |
admcrae | 0:c39433c50bf6 | 17 | lcd.touch_Set(0); |
admcrae | 1:9fcad04e0a0d | 18 | lcd.txt_Opacity(Picaso::OPAQUE); |
admcrae | 1:9fcad04e0a0d | 19 | lcd.gfx_RectangleFilled(200, 0, 230, 30, Picaso::WHITE); |
admcrae | 1:9fcad04e0a0d | 20 | lcd.gfx_RectangleFilled(0, 0, 30, 30, Picaso::WHITE); |
admcrae | 1:9fcad04e0a0d | 21 | lcd.txt_MoveCursor(1, 1); |
admcrae | 1:9fcad04e0a0d | 22 | lcd.putCH('E'); |
admcrae | 1:9fcad04e0a0d | 23 | int status = 0; |
admcrae | 1:9fcad04e0a0d | 24 | int x = 0; |
admcrae | 1:9fcad04e0a0d | 25 | int y = 0; |
admcrae | 1:9fcad04e0a0d | 26 | int eraserActive = 0; |
admcrae | 1:9fcad04e0a0d | 27 | int prevX, prevY; |
admcrae | 0:c39433c50bf6 | 28 | while(1) { |
admcrae | 1:9fcad04e0a0d | 29 | status = lcd.touch_Get(0); |
admcrae | 1:9fcad04e0a0d | 30 | if (status) |
admcrae | 1:9fcad04e0a0d | 31 | { |
admcrae | 0:c39433c50bf6 | 32 | x = lcd.touch_Get(1); |
admcrae | 0:c39433c50bf6 | 33 | y = lcd.touch_Get(2); |
admcrae | 1:9fcad04e0a0d | 34 | if (status == 1 && x >= 200 && y <= 30) { |
admcrae | 1:9fcad04e0a0d | 35 | // Clear screen |
admcrae | 1:9fcad04e0a0d | 36 | // Redraw eraser and clear screen button. |
admcrae | 1:9fcad04e0a0d | 37 | lcd.gfx_Cls(); |
admcrae | 1:9fcad04e0a0d | 38 | lcd.gfx_RectangleFilled(200, 0, 230, 30, Picaso::WHITE); |
admcrae | 1:9fcad04e0a0d | 39 | lcd.gfx_RectangleFilled(0, 0, 30, 30, Picaso::WHITE); |
admcrae | 1:9fcad04e0a0d | 40 | lcd.txt_MoveCursor(0, 0); |
admcrae | 1:9fcad04e0a0d | 41 | lcd.putCH('E'); |
admcrae | 1:9fcad04e0a0d | 42 | } else if (status == 1 && x <= 40 && y <= 30) { |
admcrae | 1:9fcad04e0a0d | 43 | eraserActive = !eraserActive; |
admcrae | 1:9fcad04e0a0d | 44 | } else { |
admcrae | 1:9fcad04e0a0d | 45 | if (eraserActive) { |
admcrae | 1:9fcad04e0a0d | 46 | lcd.gfx_RectangleFilled(x - 10, y - 10, x + 10, y + 10, Picaso::BLACK); |
admcrae | 1:9fcad04e0a0d | 47 | } else { |
admcrae | 1:9fcad04e0a0d | 48 | if (status == 1) { |
admcrae | 1:9fcad04e0a0d | 49 | prevX = x; |
admcrae | 1:9fcad04e0a0d | 50 | prevY = y; |
admcrae | 1:9fcad04e0a0d | 51 | } |
admcrae | 1:9fcad04e0a0d | 52 | |
admcrae | 1:9fcad04e0a0d | 53 | // Moving, draw a continuous line until release event happen |
admcrae | 1:9fcad04e0a0d | 54 | lcd.gfx_Line(prevX, prevY, x, y, Picaso::WHITE); |
admcrae | 1:9fcad04e0a0d | 55 | } |
admcrae | 1:9fcad04e0a0d | 56 | } |
admcrae | 1:9fcad04e0a0d | 57 | |
admcrae | 1:9fcad04e0a0d | 58 | prevX = x; |
admcrae | 1:9fcad04e0a0d | 59 | prevY = y; |
admcrae | 1:9fcad04e0a0d | 60 | |
admcrae | 1:9fcad04e0a0d | 61 | } |
admcrae | 0:c39433c50bf6 | 62 | } |
admcrae | 1:9fcad04e0a0d | 63 | } |