Gitakichi Tokyo / Mbed 2 deprecated ATM0177B3A

Dependencies:   mbed

Committer:
gitakichi
Date:
Sat Jan 02 01:42:56 2021 +0000
Revision:
3:9caa79f40909
Parent:
2:4d5b94a92f19
Child:
7:eaaf60683ca4
add colorbar and grade

Who changed what in which revision?

UserRevisionLine numberNew contents of line
morita 0:c0be4e018a09 1 /**
morita 0:c0be4e018a09 2 * @file main.c
gitakichi 2:4d5b94a92f19 3 * @brief ATM0177B3A(ILI9163 128x160) TFT LCD Test code
morita 0:c0be4e018a09 4 *
morita 0:c0be4e018a09 5 * This program is free software: you can redistribute it and/or modify
morita 0:c0be4e018a09 6 * it under the terms of the GNU General Public License as published by
morita 0:c0be4e018a09 7 * the Free Software Foundation, either version 3 of the License, or
morita 0:c0be4e018a09 8 * (at your option) any later version.
morita 0:c0be4e018a09 9 *
morita 0:c0be4e018a09 10 * This program is distributed in the hope that it will be useful,
morita 0:c0be4e018a09 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
morita 0:c0be4e018a09 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
morita 0:c0be4e018a09 13 * GNU General Public License for more details.
morita 0:c0be4e018a09 14 *
morita 0:c0be4e018a09 15 * You should have received a copy of the GNU General Public License
morita 0:c0be4e018a09 16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
morita 0:c0be4e018a09 17 *
gitakichi 2:4d5b94a92f19 18 * @author Gitakichi
morita 0:c0be4e018a09 19 * @author Jun Morita (iccraft)
morita 0:c0be4e018a09 20 *
morita 0:c0be4e018a09 21 * @copyright Copyright (C) 2012 Simon Inns
morita 0:c0be4e018a09 22 * @author Simon Inns <simon.inns@gmail.com>
morita 0:c0be4e018a09 23 */
morita 0:c0be4e018a09 24
morita 0:c0be4e018a09 25 #include "mbed.h"
morita 0:c0be4e018a09 26 #include "ili9163lcd.h"
morita 0:c0be4e018a09 27
morita 0:c0be4e018a09 28 DigitalOut LED(LED1);
morita 0:c0be4e018a09 29
morita 0:c0be4e018a09 30 int main()
morita 0:c0be4e018a09 31 {
morita 0:c0be4e018a09 32 uint8_t tm=10;
morita 0:c0be4e018a09 33 uint8_t R=0,G=0,B=0;
morita 0:c0be4e018a09 34 uint8_t RGB_state=0;
morita 0:c0be4e018a09 35
gitakichi 2:4d5b94a92f19 36 //lcdInitialise(LCD_ORIENTATION3);
gitakichi 2:4d5b94a92f19 37 lcdInitialise(ROT_BOTTOM);
gitakichi 3:9caa79f40909 38 grade();
gitakichi 3:9caa79f40909 39 wait(5);
gitakichi 3:9caa79f40909 40
gitakichi 3:9caa79f40909 41 colorbar();
gitakichi 3:9caa79f40909 42 wait(5);
morita 0:c0be4e018a09 43
morita 0:c0be4e018a09 44 lcdClearDisplay(decodeRgbValue(0, 0, 0));
gitakichi 3:9caa79f40909 45
morita 0:c0be4e018a09 46 lcdLine(0, 0, 127, 127, decodeRgbValue(31, 31, 31));
morita 0:c0be4e018a09 47 lcdLine(0, 127, 127, 0, decodeRgbValue(31, 31, 31));
morita 0:c0be4e018a09 48 lcdCircle(64, 64, 32, decodeRgbValue(31, 0, 0));
morita 0:c0be4e018a09 49 lcdCircle(64, 64, 40, decodeRgbValue(0, 31, 0));
morita 0:c0be4e018a09 50 lcdCircle(64, 64, 48, decodeRgbValue(0, 0, 31));
morita 0:c0be4e018a09 51
morita 0:c0be4e018a09 52 lcdPutS("Hello World!", lcdTextX(4), lcdTextY(0), decodeRgbValue(0, 0, 0), decodeRgbValue(31, 31, 31));
morita 0:c0be4e018a09 53
morita 0:c0be4e018a09 54 lcdPutS("The quick brown fox jumped over the lazy dog 0123456789", lcdTextX(0), lcdTextY(2), decodeRgbValue(0, 31, 31), decodeRgbValue(0, 0, 0));
morita 0:c0be4e018a09 55
morita 0:c0be4e018a09 56 lcdFilledRectangle(0, 64, 127, 127, decodeRgbValue(0, 0, 0));
morita 0:c0be4e018a09 57 lcdRectangle(0, 64, 127, 127, decodeRgbValue(31, 31, 31));
gitakichi 3:9caa79f40909 58
morita 0:c0be4e018a09 59 // Run the LCD test
morita 0:c0be4e018a09 60 uint8_t ballX = 64, ballY = 96;
morita 0:c0be4e018a09 61 int8_t ballSpeed = 1;
morita 0:c0be4e018a09 62 int8_t xDir = ballSpeed, yDir = ballSpeed;
morita 0:c0be4e018a09 63
gitakichi 2:4d5b94a92f19 64
morita 0:c0be4e018a09 65 // Bouncy ball demo
morita 0:c0be4e018a09 66 while(1)
morita 0:c0be4e018a09 67 {
morita 0:c0be4e018a09 68 // Delete the ball
morita 0:c0be4e018a09 69 lcdFilledRectangle(ballX-2, ballY-1, ballX+2, ballY+1, decodeRgbValue(0, 0, 0));
morita 0:c0be4e018a09 70
morita 0:c0be4e018a09 71 // Delete the bat
morita 0:c0be4e018a09 72 lcdFilledRectangle(ballX-4, 121, ballX+4, 123, decodeRgbValue(0, 0, 0));
morita 0:c0be4e018a09 73
morita 0:c0be4e018a09 74 // Move the ball
morita 0:c0be4e018a09 75 ballX += xDir;
morita 0:c0be4e018a09 76 ballY += yDir;
morita 0:c0be4e018a09 77
morita 0:c0be4e018a09 78 // Range check
morita 0:c0be4e018a09 79 if (ballX > 120) xDir = -ballSpeed;
morita 0:c0be4e018a09 80 if (ballX < 7) xDir = ballSpeed;
morita 0:c0be4e018a09 81
morita 0:c0be4e018a09 82 if (ballY > 120) yDir = -ballSpeed;
morita 0:c0be4e018a09 83 if (ballY < 70) yDir = ballSpeed;
morita 0:c0be4e018a09 84
morita 0:c0be4e018a09 85 // Plot the ball
morita 0:c0be4e018a09 86 lcdFilledRectangle(ballX-2, ballY-1, ballX+2, ballY+1, decodeRgbValue(31, 31, 31));
morita 0:c0be4e018a09 87
morita 0:c0be4e018a09 88 // Plot the bat
morita 0:c0be4e018a09 89 lcdFilledRectangle(ballX-4, 121, ballX+4, 123, decodeRgbValue(31, 0, 31));
morita 0:c0be4e018a09 90
morita 0:c0be4e018a09 91 // lcdPutS("Hello World!", lcdTextX(4), lcdTextY(0), decodeRgbValue(0, 0, 0), decodeRgbValue(31, 31, 31));
morita 0:c0be4e018a09 92 lcdPutS("Hello World!", lcdTextX(4), lcdTextY(0), decodeRgbValue(0, 0, 0), decodeRgbValue(R, G, B));
morita 0:c0be4e018a09 93 switch (RGB_state){
morita 0:c0be4e018a09 94 case 0:
morita 0:c0be4e018a09 95 if(++R >= 31)RGB_state++;
morita 0:c0be4e018a09 96 break;
morita 0:c0be4e018a09 97 case 1:
morita 0:c0be4e018a09 98 if(--R == 0)RGB_state++;
morita 0:c0be4e018a09 99 break;
morita 0:c0be4e018a09 100 case 2:
morita 0:c0be4e018a09 101 if(++G >= 31)RGB_state++;
morita 0:c0be4e018a09 102 break;
morita 0:c0be4e018a09 103 case 3:
morita 0:c0be4e018a09 104 if(--G == 0)RGB_state++;
morita 0:c0be4e018a09 105 break;
morita 0:c0be4e018a09 106 case 4:
morita 0:c0be4e018a09 107 if(++B >= 31)RGB_state++;
morita 0:c0be4e018a09 108 break;
morita 0:c0be4e018a09 109 case 5:
morita 0:c0be4e018a09 110 if(--B == 0)RGB_state++;
morita 0:c0be4e018a09 111 break;
morita 0:c0be4e018a09 112 case 6:
morita 0:c0be4e018a09 113 if(++R >= 31)RGB_state++;
morita 0:c0be4e018a09 114 B = R;
morita 0:c0be4e018a09 115 break;
morita 0:c0be4e018a09 116 case 7:
morita 0:c0be4e018a09 117 if(-- R== 0)RGB_state++;
morita 0:c0be4e018a09 118 B = R;
morita 0:c0be4e018a09 119 break;
morita 0:c0be4e018a09 120 case 8:
morita 0:c0be4e018a09 121 if(++R >= 31)RGB_state++;
morita 0:c0be4e018a09 122 G = R;
morita 0:c0be4e018a09 123 break;
morita 0:c0be4e018a09 124 case 9:
morita 0:c0be4e018a09 125 if(-- R== 0)RGB_state++;
morita 0:c0be4e018a09 126 G = R;
morita 0:c0be4e018a09 127 break;
morita 0:c0be4e018a09 128 case 10:
morita 0:c0be4e018a09 129 if(++G >= 31)RGB_state++;
morita 0:c0be4e018a09 130 B = G;
morita 0:c0be4e018a09 131 break;
morita 0:c0be4e018a09 132 case 11:
morita 0:c0be4e018a09 133 if(-- G== 0)RGB_state++;
morita 0:c0be4e018a09 134 B = G;
morita 0:c0be4e018a09 135 break;
morita 0:c0be4e018a09 136 case 12:
morita 0:c0be4e018a09 137 if(++R >= 31)RGB_state++;
morita 0:c0be4e018a09 138 B = G = R;
morita 0:c0be4e018a09 139 break;
morita 0:c0be4e018a09 140 case 13:
morita 0:c0be4e018a09 141 if(--R == 0)RGB_state = 0;
morita 0:c0be4e018a09 142 B = G = R;
morita 0:c0be4e018a09 143 break;
morita 0:c0be4e018a09 144 }
morita 0:c0be4e018a09 145 wait_ms(10);
morita 0:c0be4e018a09 146 if(--tm==0){
morita 0:c0be4e018a09 147 tm=10;
morita 0:c0be4e018a09 148 LED = LED ^ 1;
morita 0:c0be4e018a09 149 }
morita 0:c0be4e018a09 150 }
gitakichi 3:9caa79f40909 151
morita 0:c0be4e018a09 152 }