Gitakichi Tokyo / Mbed 2 deprecated ATM0177B3A

Dependencies:   mbed

Committer:
gitakichi
Date:
Sat Jan 02 10:36:18 2021 +0000
Revision:
8:761e71533bff
Parent:
7:eaaf60683ca4
Child:
9:58f6248ef377
comment outed

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
gitakichi 8:761e71533bff 28 //const bool shehuizhuyi[] = {};
gitakichi 8:761e71533bff 29
gitakichi 7:eaaf60683ca4 30
morita 0:c0be4e018a09 31 DigitalOut LED(LED1);
morita 0:c0be4e018a09 32
morita 0:c0be4e018a09 33 int main()
morita 0:c0be4e018a09 34 {
morita 0:c0be4e018a09 35 uint8_t tm=10;
morita 0:c0be4e018a09 36 uint8_t R=0,G=0,B=0;
morita 0:c0be4e018a09 37 uint8_t RGB_state=0;
morita 0:c0be4e018a09 38
gitakichi 2:4d5b94a92f19 39 //lcdInitialise(LCD_ORIENTATION3);
gitakichi 2:4d5b94a92f19 40 lcdInitialise(ROT_BOTTOM);
gitakichi 7:eaaf60683ca4 41
gitakichi 8:761e71533bff 42 //lcdWriteData_monoburst((bool*)shehuizhuyi,20480);
gitakichi 8:761e71533bff 43 //wait(5);
gitakichi 7:eaaf60683ca4 44
gitakichi 3:9caa79f40909 45 grade();
gitakichi 3:9caa79f40909 46 wait(5);
gitakichi 3:9caa79f40909 47
gitakichi 3:9caa79f40909 48 colorbar();
gitakichi 3:9caa79f40909 49 wait(5);
morita 0:c0be4e018a09 50
morita 0:c0be4e018a09 51 lcdClearDisplay(decodeRgbValue(0, 0, 0));
gitakichi 3:9caa79f40909 52
morita 0:c0be4e018a09 53 lcdLine(0, 0, 127, 127, decodeRgbValue(31, 31, 31));
morita 0:c0be4e018a09 54 lcdLine(0, 127, 127, 0, decodeRgbValue(31, 31, 31));
morita 0:c0be4e018a09 55 lcdCircle(64, 64, 32, decodeRgbValue(31, 0, 0));
morita 0:c0be4e018a09 56 lcdCircle(64, 64, 40, decodeRgbValue(0, 31, 0));
morita 0:c0be4e018a09 57 lcdCircle(64, 64, 48, decodeRgbValue(0, 0, 31));
morita 0:c0be4e018a09 58
morita 0:c0be4e018a09 59 lcdPutS("Hello World!", lcdTextX(4), lcdTextY(0), decodeRgbValue(0, 0, 0), decodeRgbValue(31, 31, 31));
morita 0:c0be4e018a09 60
morita 0:c0be4e018a09 61 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 62
morita 0:c0be4e018a09 63 lcdFilledRectangle(0, 64, 127, 127, decodeRgbValue(0, 0, 0));
morita 0:c0be4e018a09 64 lcdRectangle(0, 64, 127, 127, decodeRgbValue(31, 31, 31));
gitakichi 3:9caa79f40909 65
morita 0:c0be4e018a09 66 // Run the LCD test
morita 0:c0be4e018a09 67 uint8_t ballX = 64, ballY = 96;
morita 0:c0be4e018a09 68 int8_t ballSpeed = 1;
morita 0:c0be4e018a09 69 int8_t xDir = ballSpeed, yDir = ballSpeed;
morita 0:c0be4e018a09 70
gitakichi 2:4d5b94a92f19 71
morita 0:c0be4e018a09 72 // Bouncy ball demo
morita 0:c0be4e018a09 73 while(1)
morita 0:c0be4e018a09 74 {
morita 0:c0be4e018a09 75 // Delete the ball
morita 0:c0be4e018a09 76 lcdFilledRectangle(ballX-2, ballY-1, ballX+2, ballY+1, decodeRgbValue(0, 0, 0));
morita 0:c0be4e018a09 77
morita 0:c0be4e018a09 78 // Delete the bat
morita 0:c0be4e018a09 79 lcdFilledRectangle(ballX-4, 121, ballX+4, 123, decodeRgbValue(0, 0, 0));
morita 0:c0be4e018a09 80
morita 0:c0be4e018a09 81 // Move the ball
morita 0:c0be4e018a09 82 ballX += xDir;
morita 0:c0be4e018a09 83 ballY += yDir;
morita 0:c0be4e018a09 84
morita 0:c0be4e018a09 85 // Range check
morita 0:c0be4e018a09 86 if (ballX > 120) xDir = -ballSpeed;
morita 0:c0be4e018a09 87 if (ballX < 7) xDir = ballSpeed;
morita 0:c0be4e018a09 88
morita 0:c0be4e018a09 89 if (ballY > 120) yDir = -ballSpeed;
morita 0:c0be4e018a09 90 if (ballY < 70) yDir = ballSpeed;
morita 0:c0be4e018a09 91
morita 0:c0be4e018a09 92 // Plot the ball
morita 0:c0be4e018a09 93 lcdFilledRectangle(ballX-2, ballY-1, ballX+2, ballY+1, decodeRgbValue(31, 31, 31));
morita 0:c0be4e018a09 94
morita 0:c0be4e018a09 95 // Plot the bat
morita 0:c0be4e018a09 96 lcdFilledRectangle(ballX-4, 121, ballX+4, 123, decodeRgbValue(31, 0, 31));
morita 0:c0be4e018a09 97
morita 0:c0be4e018a09 98 // lcdPutS("Hello World!", lcdTextX(4), lcdTextY(0), decodeRgbValue(0, 0, 0), decodeRgbValue(31, 31, 31));
morita 0:c0be4e018a09 99 lcdPutS("Hello World!", lcdTextX(4), lcdTextY(0), decodeRgbValue(0, 0, 0), decodeRgbValue(R, G, B));
morita 0:c0be4e018a09 100 switch (RGB_state){
morita 0:c0be4e018a09 101 case 0:
morita 0:c0be4e018a09 102 if(++R >= 31)RGB_state++;
morita 0:c0be4e018a09 103 break;
morita 0:c0be4e018a09 104 case 1:
morita 0:c0be4e018a09 105 if(--R == 0)RGB_state++;
morita 0:c0be4e018a09 106 break;
morita 0:c0be4e018a09 107 case 2:
morita 0:c0be4e018a09 108 if(++G >= 31)RGB_state++;
morita 0:c0be4e018a09 109 break;
morita 0:c0be4e018a09 110 case 3:
morita 0:c0be4e018a09 111 if(--G == 0)RGB_state++;
morita 0:c0be4e018a09 112 break;
morita 0:c0be4e018a09 113 case 4:
morita 0:c0be4e018a09 114 if(++B >= 31)RGB_state++;
morita 0:c0be4e018a09 115 break;
morita 0:c0be4e018a09 116 case 5:
morita 0:c0be4e018a09 117 if(--B == 0)RGB_state++;
morita 0:c0be4e018a09 118 break;
morita 0:c0be4e018a09 119 case 6:
morita 0:c0be4e018a09 120 if(++R >= 31)RGB_state++;
morita 0:c0be4e018a09 121 B = R;
morita 0:c0be4e018a09 122 break;
morita 0:c0be4e018a09 123 case 7:
morita 0:c0be4e018a09 124 if(-- R== 0)RGB_state++;
morita 0:c0be4e018a09 125 B = R;
morita 0:c0be4e018a09 126 break;
morita 0:c0be4e018a09 127 case 8:
morita 0:c0be4e018a09 128 if(++R >= 31)RGB_state++;
morita 0:c0be4e018a09 129 G = R;
morita 0:c0be4e018a09 130 break;
morita 0:c0be4e018a09 131 case 9:
morita 0:c0be4e018a09 132 if(-- R== 0)RGB_state++;
morita 0:c0be4e018a09 133 G = R;
morita 0:c0be4e018a09 134 break;
morita 0:c0be4e018a09 135 case 10:
morita 0:c0be4e018a09 136 if(++G >= 31)RGB_state++;
morita 0:c0be4e018a09 137 B = G;
morita 0:c0be4e018a09 138 break;
morita 0:c0be4e018a09 139 case 11:
morita 0:c0be4e018a09 140 if(-- G== 0)RGB_state++;
morita 0:c0be4e018a09 141 B = G;
morita 0:c0be4e018a09 142 break;
morita 0:c0be4e018a09 143 case 12:
morita 0:c0be4e018a09 144 if(++R >= 31)RGB_state++;
morita 0:c0be4e018a09 145 B = G = R;
morita 0:c0be4e018a09 146 break;
morita 0:c0be4e018a09 147 case 13:
morita 0:c0be4e018a09 148 if(--R == 0)RGB_state = 0;
morita 0:c0be4e018a09 149 B = G = R;
morita 0:c0be4e018a09 150 break;
morita 0:c0be4e018a09 151 }
morita 0:c0be4e018a09 152 wait_ms(10);
morita 0:c0be4e018a09 153 if(--tm==0){
morita 0:c0be4e018a09 154 tm=10;
morita 0:c0be4e018a09 155 LED = LED ^ 1;
morita 0:c0be4e018a09 156 }
morita 0:c0be4e018a09 157 }
gitakichi 3:9caa79f40909 158
morita 0:c0be4e018a09 159 }