![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
TFT 1.44
Dependencies: mbed
Fork of DL144128_LCD by
Diff: main.cpp
- Revision:
- 0:c0be4e018a09
- Child:
- 1:b64c81071d96
diff -r 000000000000 -r c0be4e018a09 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Sat Jun 14 02:27:06 2014 +0000 @@ -0,0 +1,143 @@ +/** + * @file main.c + * @brief ILI9163/DL144128TF 128x128 TFT LCD Test code + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * @author Jun Morita (iccraft) + * + * @copyright Copyright (C) 2012 Simon Inns + * @author Simon Inns <simon.inns@gmail.com> + */ + +#include "mbed.h" +#include "ili9163lcd.h" + +DigitalOut LED(LED1); + +int main() +{ + uint8_t tm=10; + uint8_t R=0,G=0,B=0; + uint8_t RGB_state=0; + + lcdInitialise(LCD_ORIENTATION3); + + lcdClearDisplay(decodeRgbValue(0, 0, 0)); + + lcdLine(0, 0, 127, 127, decodeRgbValue(31, 31, 31)); + lcdLine(0, 127, 127, 0, decodeRgbValue(31, 31, 31)); + lcdCircle(64, 64, 32, decodeRgbValue(31, 0, 0)); + lcdCircle(64, 64, 40, decodeRgbValue(0, 31, 0)); + lcdCircle(64, 64, 48, decodeRgbValue(0, 0, 31)); + + lcdPutS("Hello World!", lcdTextX(4), lcdTextY(0), decodeRgbValue(0, 0, 0), decodeRgbValue(31, 31, 31)); + + lcdPutS("The quick brown fox jumped over the lazy dog 0123456789", lcdTextX(0), lcdTextY(2), decodeRgbValue(0, 31, 31), decodeRgbValue(0, 0, 0)); + + lcdFilledRectangle(0, 64, 127, 127, decodeRgbValue(0, 0, 0)); + lcdRectangle(0, 64, 127, 127, decodeRgbValue(31, 31, 31)); + + // Run the LCD test + uint8_t ballX = 64, ballY = 96; + int8_t ballSpeed = 1; + int8_t xDir = ballSpeed, yDir = ballSpeed; + + // Bouncy ball demo + while(1) + { + // Delete the ball + lcdFilledRectangle(ballX-2, ballY-1, ballX+2, ballY+1, decodeRgbValue(0, 0, 0)); + + // Delete the bat + lcdFilledRectangle(ballX-4, 121, ballX+4, 123, decodeRgbValue(0, 0, 0)); + + // Move the ball + ballX += xDir; + ballY += yDir; + + // Range check + if (ballX > 120) xDir = -ballSpeed; + if (ballX < 7) xDir = ballSpeed; + + if (ballY > 120) yDir = -ballSpeed; + if (ballY < 70) yDir = ballSpeed; + + // Plot the ball + lcdFilledRectangle(ballX-2, ballY-1, ballX+2, ballY+1, decodeRgbValue(31, 31, 31)); + + // Plot the bat + lcdFilledRectangle(ballX-4, 121, ballX+4, 123, decodeRgbValue(31, 0, 31)); + +// lcdPutS("Hello World!", lcdTextX(4), lcdTextY(0), decodeRgbValue(0, 0, 0), decodeRgbValue(31, 31, 31)); + lcdPutS("Hello World!", lcdTextX(4), lcdTextY(0), decodeRgbValue(0, 0, 0), decodeRgbValue(R, G, B)); + switch (RGB_state){ + case 0: + if(++R >= 31)RGB_state++; + break; + case 1: + if(--R == 0)RGB_state++; + break; + case 2: + if(++G >= 31)RGB_state++; + break; + case 3: + if(--G == 0)RGB_state++; + break; + case 4: + if(++B >= 31)RGB_state++; + break; + case 5: + if(--B == 0)RGB_state++; + break; + case 6: + if(++R >= 31)RGB_state++; + B = R; + break; + case 7: + if(-- R== 0)RGB_state++; + B = R; + break; + case 8: + if(++R >= 31)RGB_state++; + G = R; + break; + case 9: + if(-- R== 0)RGB_state++; + G = R; + break; + case 10: + if(++G >= 31)RGB_state++; + B = G; + break; + case 11: + if(-- G== 0)RGB_state++; + B = G; + break; + case 12: + if(++R >= 31)RGB_state++; + B = G = R; + break; + case 13: + if(--R == 0)RGB_state = 0; + B = G = R; + break; + } + wait_ms(10); + if(--tm==0){ + tm=10; + LED = LED ^ 1; + } + } +}