SGG
Dependencies: mbed SDFileSystemForSGG
main.cpp@6:9b564803f45e, 2021-01-21 (annotated)
- Committer:
- rempig
- Date:
- Thu Jan 21 02:52:40 2021 +0000
- Revision:
- 6:9b564803f45e
- Parent:
- 5:9cc383153bdb
publish
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rempig | 5:9cc383153bdb | 1 | /*OP Panel Tester Offline by Ronan S. Empig*/ |
rempig | 5:9cc383153bdb | 2 | |
screamer | 3:5edc67dee8b7 | 3 | |
screamer | 0:525c842a3c89 | 4 | #include "mbed.h" |
screamer | 0:525c842a3c89 | 5 | #include "SDFileSystem.h" |
screamer | 0:525c842a3c89 | 6 | |
screamer | 2:f2f5e2324ad4 | 7 | Serial pc(USBTX, USBRX); |
screamer | 0:525c842a3c89 | 8 | SDFileSystem sd(D11, D12, D13, D10, "sd"); // MOSI, MISO, SCK, CS |
screamer | 0:525c842a3c89 | 9 | FILE *fp; |
screamer | 0:525c842a3c89 | 10 | |
rempig | 5:9cc383153bdb | 11 | I2C i2c(PB_9, PB_8); |
rempig | 5:9cc383153bdb | 12 | |
rempig | 5:9cc383153bdb | 13 | |
rempig | 5:9cc383153bdb | 14 | |
rempig | 5:9cc383153bdb | 15 | |
rempig | 5:9cc383153bdb | 16 | //SD Card |
rempig | 5:9cc383153bdb | 17 | |
rempig | 5:9cc383153bdb | 18 | // ** MOSI - pin 11 |
rempig | 5:9cc383153bdb | 19 | // ** MISO - pin 12 |
rempig | 5:9cc383153bdb | 20 | // ** CLK - pin 13 |
rempig | 5:9cc383153bdb | 21 | // ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN) |
rempig | 5:9cc383153bdb | 22 | |
rempig | 5:9cc383153bdb | 23 | //8080-I series 8-bit Parallel Interface |
rempig | 5:9cc383153bdb | 24 | |
rempig | 5:9cc383153bdb | 25 | //State Machine |
rempig | 5:9cc383153bdb | 26 | |
rempig | 5:9cc383153bdb | 27 | int STATEMACHINE = 0; |
rempig | 5:9cc383153bdb | 28 | const int IDLESTATE = 0; |
rempig | 5:9cc383153bdb | 29 | const int POWERON = 1; |
rempig | 5:9cc383153bdb | 30 | const int GETADDRESS = 2; |
rempig | 5:9cc383153bdb | 31 | const int GOTOAPP = 5; |
rempig | 5:9cc383153bdb | 32 | const int UIBC5VENB = 14; |
rempig | 5:9cc383153bdb | 33 | const int UIBCDISPENB = 15; |
rempig | 5:9cc383153bdb | 34 | const int UIBCDISPENB2 = 16; |
rempig | 5:9cc383153bdb | 35 | const int UIBCAUXTOUCHENABLE = 17; |
rempig | 5:9cc383153bdb | 36 | const int LED1CTRL = 18; |
rempig | 5:9cc383153bdb | 37 | const int LED1DUTY = 19; |
rempig | 5:9cc383153bdb | 38 | const int UIBCBACKLIGHTDUTY = 20; |
rempig | 5:9cc383153bdb | 39 | const int DONESTATE = 21; |
rempig | 5:9cc383153bdb | 40 | const int LCDTESTINIT = 22; |
rempig | 5:9cc383153bdb | 41 | const int LCDTEST1 = 23; |
rempig | 5:9cc383153bdb | 42 | const int LCDTEST2 = 24; |
rempig | 5:9cc383153bdb | 43 | |
rempig | 5:9cc383153bdb | 44 | const int LED2CTRL = 25; |
rempig | 5:9cc383153bdb | 45 | const int LED2DUTY = 26; |
rempig | 5:9cc383153bdb | 46 | const int RACASET = 27; |
rempig | 5:9cc383153bdb | 47 | const int GOODDONE = 28; |
rempig | 5:9cc383153bdb | 48 | /* |
rempig | 5:9cc383153bdb | 49 | const int TOUCHTEST1 = 25; |
rempig | 5:9cc383153bdb | 50 | const int TOUCHTEST2 = 26; |
rempig | 5:9cc383153bdb | 51 | const int TOUCHTEST3 = 27; |
rempig | 5:9cc383153bdb | 52 | const int TOUCHTEST4 = 28; |
rempig | 5:9cc383153bdb | 53 | */ |
rempig | 5:9cc383153bdb | 54 | const int TOUCHTEST5 = 29; |
rempig | 5:9cc383153bdb | 55 | const int TOUCHTEST6 = 30; |
rempig | 5:9cc383153bdb | 56 | const int TOUCHTEST7 = 31; |
rempig | 5:9cc383153bdb | 57 | const int TOUCHTEST8 = 32; |
rempig | 5:9cc383153bdb | 58 | |
rempig | 5:9cc383153bdb | 59 | const int TOUCHDETECT = 33; |
rempig | 5:9cc383153bdb | 60 | const int TOUCHTESTINIT = 34; |
rempig | 5:9cc383153bdb | 61 | const int WAITCONTINUE = 35; |
rempig | 5:9cc383153bdb | 62 | const int FWUPDATE = 36; |
rempig | 5:9cc383153bdb | 63 | |
rempig | 5:9cc383153bdb | 64 | //Variables |
rempig | 5:9cc383153bdb | 65 | int addr1 = 0; |
rempig | 5:9cc383153bdb | 66 | int addr2 = 0; |
rempig | 5:9cc383153bdb | 67 | int addrsht = 0x00; |
rempig | 5:9cc383153bdb | 68 | unsigned char LowByteChecksum; |
rempig | 5:9cc383153bdb | 69 | |
rempig | 5:9cc383153bdb | 70 | |
rempig | 5:9cc383153bdb | 71 | //byte error = 0; |
rempig | 5:9cc383153bdb | 72 | unsigned char command; |
rempig | 5:9cc383153bdb | 73 | unsigned char data1; |
rempig | 5:9cc383153bdb | 74 | int RDDIDVal = 0; |
rempig | 5:9cc383153bdb | 75 | int cntbytes = 0; |
rempig | 5:9cc383153bdb | 76 | int cntWrite = 0; |
rempig | 5:9cc383153bdb | 77 | char fwROM[8]; |
rempig | 5:9cc383153bdb | 78 | char flRead[8]; |
rempig | 5:9cc383153bdb | 79 | char ISPRdy[8]; |
rempig | 5:9cc383153bdb | 80 | |
rempig | 5:9cc383153bdb | 81 | int pageNum = 0; |
rempig | 5:9cc383153bdb | 82 | |
rempig | 5:9cc383153bdb | 83 | char *fName; |
rempig | 5:9cc383153bdb | 84 | bool touch1 = false; |
rempig | 5:9cc383153bdb | 85 | bool touch2 = false; |
rempig | 5:9cc383153bdb | 86 | bool touch3 = false; |
rempig | 5:9cc383153bdb | 87 | bool touch4 = false; |
rempig | 5:9cc383153bdb | 88 | bool touch5 = false; |
rempig | 5:9cc383153bdb | 89 | bool touchkey1 = false; |
rempig | 5:9cc383153bdb | 90 | bool touchkey2 = false; |
rempig | 5:9cc383153bdb | 91 | bool touchkey3 = false; |
rempig | 5:9cc383153bdb | 92 | bool touchresult = false; |
rempig | 5:9cc383153bdb | 93 | //--------------------------------------------------------- |
rempig | 5:9cc383153bdb | 94 | DigitalIn buttonNext(PC_4); // button (pull-up) is connected to P18 |
rempig | 5:9cc383153bdb | 95 | |
rempig | 5:9cc383153bdb | 96 | DigitalOut nRD(PC_8); /* read data from SSD1963 active LOW - but not used */ |
rempig | 5:9cc383153bdb | 97 | DigitalOut nWR(PC_6); /* write out to SSD1963 active LOW */ |
rempig | 5:9cc383153bdb | 98 | DigitalOut DC(PC_5); /* Data/Command Select: 1=Command, 0=Data); */ |
rempig | 5:9cc383153bdb | 99 | |
rempig | 5:9cc383153bdb | 100 | DigitalOut CS(PA_10); /* chip select the SSD1963 active LOW */ |
rempig | 5:9cc383153bdb | 101 | |
rempig | 5:9cc383153bdb | 102 | /* data bus I/O pins */ |
rempig | 5:9cc383153bdb | 103 | |
rempig | 5:9cc383153bdb | 104 | BusInOut DB(PB_14,PB_15,PB_1,PB_2,PB_11,PB_12,PA_11,PA_12); /* databus D7-D0 */ |
rempig | 5:9cc383153bdb | 105 | |
rempig | 5:9cc383153bdb | 106 | DigitalOut powerPanel(PB_3); |
rempig | 5:9cc383153bdb | 107 | |
rempig | 5:9cc383153bdb | 108 | //LCD***************************************************** |
rempig | 5:9cc383153bdb | 109 | //****************************************************************************** |
rempig | 5:9cc383153bdb | 110 | void Write_Command(unsigned char command) { |
rempig | 5:9cc383153bdb | 111 | CS=0; |
rempig | 5:9cc383153bdb | 112 | nRD = 1; /* make sure the RD is HIGH just to be sure */ |
rempig | 5:9cc383153bdb | 113 | DC=0; |
rempig | 5:9cc383153bdb | 114 | nWR = 0; |
rempig | 5:9cc383153bdb | 115 | //wait_us(1); |
rempig | 5:9cc383153bdb | 116 | DB=command; |
rempig | 5:9cc383153bdb | 117 | wait_us(1); |
rempig | 5:9cc383153bdb | 118 | DB.output(); |
rempig | 5:9cc383153bdb | 119 | DB=command; |
rempig | 5:9cc383153bdb | 120 | wait_us(1); |
rempig | 5:9cc383153bdb | 121 | nWR = 1; |
rempig | 5:9cc383153bdb | 122 | } |
rempig | 5:9cc383153bdb | 123 | |
rempig | 5:9cc383153bdb | 124 | |
rempig | 5:9cc383153bdb | 125 | //;****************************************************************************** |
rempig | 5:9cc383153bdb | 126 | void Write_Data(unsigned char data1) { |
rempig | 5:9cc383153bdb | 127 | CS=0; |
rempig | 5:9cc383153bdb | 128 | nRD = 1; |
rempig | 5:9cc383153bdb | 129 | DC=1; |
rempig | 5:9cc383153bdb | 130 | nWR = 0; |
rempig | 5:9cc383153bdb | 131 | DB.output(); |
rempig | 5:9cc383153bdb | 132 | DB=data1; |
rempig | 5:9cc383153bdb | 133 | DB=data1; |
rempig | 5:9cc383153bdb | 134 | |
rempig | 5:9cc383153bdb | 135 | //wait_us(1); |
rempig | 5:9cc383153bdb | 136 | nWR = 1; |
rempig | 5:9cc383153bdb | 137 | } |
rempig | 5:9cc383153bdb | 138 | |
rempig | 5:9cc383153bdb | 139 | //;****************************************************************************** |
rempig | 5:9cc383153bdb | 140 | int Read_Data() { |
rempig | 5:9cc383153bdb | 141 | CS=0; |
rempig | 5:9cc383153bdb | 142 | nRD = 0; |
rempig | 5:9cc383153bdb | 143 | DC=1; |
rempig | 5:9cc383153bdb | 144 | nWR = 1; |
rempig | 5:9cc383153bdb | 145 | wait_us(1); |
rempig | 5:9cc383153bdb | 146 | |
rempig | 5:9cc383153bdb | 147 | nRD = 1; |
rempig | 5:9cc383153bdb | 148 | wait_us(1); |
rempig | 5:9cc383153bdb | 149 | DB.input(); |
rempig | 5:9cc383153bdb | 150 | int intRead = DB.read(); |
rempig | 5:9cc383153bdb | 151 | return intRead; |
rempig | 5:9cc383153bdb | 152 | } |
rempig | 5:9cc383153bdb | 153 | |
rempig | 5:9cc383153bdb | 154 | |
rempig | 5:9cc383153bdb | 155 | //==================================================== |
rempig | 5:9cc383153bdb | 156 | void RDDID_Read(unsigned char REG) { |
rempig | 5:9cc383153bdb | 157 | Write_Command(REG); |
rempig | 5:9cc383153bdb | 158 | int intrd; |
rempig | 5:9cc383153bdb | 159 | wait_us(1); |
rempig | 5:9cc383153bdb | 160 | intrd = Read_Data(); |
rempig | 5:9cc383153bdb | 161 | printf("0x%02x\n", intrd); |
rempig | 5:9cc383153bdb | 162 | wait_us(1); |
rempig | 5:9cc383153bdb | 163 | intrd = Read_Data(); |
rempig | 5:9cc383153bdb | 164 | printf("0x%02x\n", intrd); |
rempig | 5:9cc383153bdb | 165 | RDDIDVal = intrd; |
rempig | 5:9cc383153bdb | 166 | wait_us(1); |
rempig | 5:9cc383153bdb | 167 | intrd = Read_Data(); |
rempig | 5:9cc383153bdb | 168 | printf("0x%02x\n", intrd); |
rempig | 5:9cc383153bdb | 169 | RDDIDVal = (RDDIDVal << 16) | intrd << 8; |
rempig | 5:9cc383153bdb | 170 | wait_us(1); |
rempig | 5:9cc383153bdb | 171 | intrd = Read_Data(); |
rempig | 5:9cc383153bdb | 172 | printf("0x%02x\n", intrd); |
rempig | 5:9cc383153bdb | 173 | RDDIDVal = RDDIDVal | intrd; |
rempig | 5:9cc383153bdb | 174 | printf("0x%06x\n", RDDIDVal); |
rempig | 5:9cc383153bdb | 175 | } |
rempig | 5:9cc383153bdb | 176 | |
rempig | 5:9cc383153bdb | 177 | |
rempig | 5:9cc383153bdb | 178 | //==================================================== |
rempig | 5:9cc383153bdb | 179 | void Command_Write(unsigned char REG,unsigned char VALUE) { |
rempig | 5:9cc383153bdb | 180 | Write_Command(REG); |
rempig | 5:9cc383153bdb | 181 | Write_Data(VALUE); |
rempig | 5:9cc383153bdb | 182 | } |
rempig | 5:9cc383153bdb | 183 | //====================================================== |
rempig | 5:9cc383153bdb | 184 | void SendData(unsigned char datahi, unsigned char datalow) { |
rempig | 5:9cc383153bdb | 185 | //Write_Data((color)>>16); //red |
rempig | 5:9cc383153bdb | 186 | //Write_Data((color)>>8); //green |
rempig | 5:9cc383153bdb | 187 | Write_Data(datahi); //blue |
rempig | 5:9cc383153bdb | 188 | Write_Data(datalow); //blue |
rempig | 5:9cc383153bdb | 189 | |
rempig | 5:9cc383153bdb | 190 | } |
rempig | 5:9cc383153bdb | 191 | //====================================================== |
rempig | 5:9cc383153bdb | 192 | // initialize controller |
rempig | 5:9cc383153bdb | 193 | //====================================================== |
rempig | 5:9cc383153bdb | 194 | void tianma_2p8_st7789vi_power_on() { |
rempig | 5:9cc383153bdb | 195 | wait_ms(100); |
rempig | 5:9cc383153bdb | 196 | Write_Command(0x01); //Software Reset |
rempig | 5:9cc383153bdb | 197 | wait_ms(1000); |
rempig | 5:9cc383153bdb | 198 | |
rempig | 5:9cc383153bdb | 199 | Write_Command(0x11); |
rempig | 5:9cc383153bdb | 200 | wait_ms(120); |
rempig | 5:9cc383153bdb | 201 | Write_Command(0x36); |
rempig | 5:9cc383153bdb | 202 | Write_Data(0x00); |
rempig | 5:9cc383153bdb | 203 | Write_Command(0x3a); |
rempig | 5:9cc383153bdb | 204 | Write_Data(0x55); |
rempig | 5:9cc383153bdb | 205 | /*----------------------------ST7789S Frame rate setting---------------------------------*/ |
rempig | 5:9cc383153bdb | 206 | Write_Command(0xb2); |
rempig | 5:9cc383153bdb | 207 | Write_Data(0x0c); |
rempig | 5:9cc383153bdb | 208 | Write_Data(0x0c); |
rempig | 5:9cc383153bdb | 209 | Write_Data(0x00); |
rempig | 5:9cc383153bdb | 210 | Write_Data(0x33); |
rempig | 5:9cc383153bdb | 211 | Write_Data(0x33); |
rempig | 5:9cc383153bdb | 212 | Write_Command(0xb7); |
rempig | 5:9cc383153bdb | 213 | Write_Data(0x35); |
rempig | 5:9cc383153bdb | 214 | /*-----------------------------ST7789S Power setting-------------------------------------*/ |
rempig | 5:9cc383153bdb | 215 | Write_Command(0xbb); |
rempig | 5:9cc383153bdb | 216 | Write_Data(0x19); |
rempig | 5:9cc383153bdb | 217 | Write_Command(0xc0); |
rempig | 5:9cc383153bdb | 218 | Write_Data(0x2c); |
rempig | 5:9cc383153bdb | 219 | Write_Command(0xc2); |
rempig | 5:9cc383153bdb | 220 | Write_Data(0x01); |
rempig | 5:9cc383153bdb | 221 | Write_Command(0xc3); |
rempig | 5:9cc383153bdb | 222 | Write_Data(0x1d); |
rempig | 5:9cc383153bdb | 223 | Write_Command(0xc4); |
rempig | 5:9cc383153bdb | 224 | Write_Data(0x20); |
rempig | 5:9cc383153bdb | 225 | Write_Command(0xc6); |
rempig | 5:9cc383153bdb | 226 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 227 | Write_Command(0xd0); |
rempig | 5:9cc383153bdb | 228 | Write_Data(0xa4); |
rempig | 5:9cc383153bdb | 229 | Write_Data(0xa1); |
rempig | 5:9cc383153bdb | 230 | /*----------------------------ST7789S gamma setting--------------------------------------*/ |
rempig | 5:9cc383153bdb | 231 | Write_Command(0xe0); |
rempig | 5:9cc383153bdb | 232 | Write_Data(0xdb); |
rempig | 5:9cc383153bdb | 233 | Write_Data(0x1b); |
rempig | 5:9cc383153bdb | 234 | Write_Data(0x1d); |
rempig | 5:9cc383153bdb | 235 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 236 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 237 | Write_Data(0x3a); |
rempig | 5:9cc383153bdb | 238 | Write_Data(0x3e); |
rempig | 5:9cc383153bdb | 239 | Write_Data(0x45); |
rempig | 5:9cc383153bdb | 240 | Write_Data(0x4d); |
rempig | 5:9cc383153bdb | 241 | Write_Data(0x1c); |
rempig | 5:9cc383153bdb | 242 | Write_Data(0x16); |
rempig | 5:9cc383153bdb | 243 | Write_Data(0x15); |
rempig | 5:9cc383153bdb | 244 | Write_Data(0x1d); |
rempig | 5:9cc383153bdb | 245 | Write_Data(0x21); |
rempig | 5:9cc383153bdb | 246 | Write_Command(0xe1); |
rempig | 5:9cc383153bdb | 247 | Write_Data(0xdb); |
rempig | 5:9cc383153bdb | 248 | Write_Data(0x1b); |
rempig | 5:9cc383153bdb | 249 | Write_Data(0x1d); |
rempig | 5:9cc383153bdb | 250 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 251 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 252 | Write_Data(0x3a); |
rempig | 5:9cc383153bdb | 253 | Write_Data(0x3e); |
rempig | 5:9cc383153bdb | 254 | Write_Data(0x45); |
rempig | 5:9cc383153bdb | 255 | Write_Data(0x4d); |
rempig | 5:9cc383153bdb | 256 | Write_Data(0x1c); |
rempig | 5:9cc383153bdb | 257 | Write_Data(0x16); |
rempig | 5:9cc383153bdb | 258 | Write_Data(0x15); |
rempig | 5:9cc383153bdb | 259 | Write_Data(0x1d); |
rempig | 5:9cc383153bdb | 260 | Write_Data(0x21); |
rempig | 5:9cc383153bdb | 261 | /*-----------------------------ST7789S Display ON--------------------------------------*/ |
rempig | 5:9cc383153bdb | 262 | Write_Command(0x29); |
rempig | 5:9cc383153bdb | 263 | wait_ms(50); |
rempig | 5:9cc383153bdb | 264 | }; |
rempig | 5:9cc383153bdb | 265 | |
rempig | 5:9cc383153bdb | 266 | void yeebo_st7789v_power_on() { |
rempig | 5:9cc383153bdb | 267 | wait_ms(100); |
rempig | 5:9cc383153bdb | 268 | Write_Command(0x01); //Software Reset |
rempig | 5:9cc383153bdb | 269 | wait_ms(1000); |
rempig | 5:9cc383153bdb | 270 | |
rempig | 5:9cc383153bdb | 271 | Write_Command(0x11); |
rempig | 5:9cc383153bdb | 272 | wait_ms(120); |
rempig | 5:9cc383153bdb | 273 | Write_Command(0x36); |
rempig | 5:9cc383153bdb | 274 | Write_Data(0x00); |
rempig | 5:9cc383153bdb | 275 | Write_Command(0x3a); |
rempig | 5:9cc383153bdb | 276 | Write_Data(0x55); |
rempig | 5:9cc383153bdb | 277 | //----------------------------ST7789S Frame rate //setting----------------------------------// |
rempig | 5:9cc383153bdb | 278 | Write_Command(0xb2); |
rempig | 5:9cc383153bdb | 279 | Write_Data(0x0c); |
rempig | 5:9cc383153bdb | 280 | Write_Data(0x0c); |
rempig | 5:9cc383153bdb | 281 | Write_Data(0x00); |
rempig | 5:9cc383153bdb | 282 | Write_Data(0x33); |
rempig | 5:9cc383153bdb | 283 | Write_Data(0x33); |
rempig | 5:9cc383153bdb | 284 | Write_Command(0xb7); |
rempig | 5:9cc383153bdb | 285 | Write_Data(0x35); |
rempig | 5:9cc383153bdb | 286 | //-----------------------------ST7789S Power //setting--------------------------------------// |
rempig | 5:9cc383153bdb | 287 | Write_Command(0xbb); |
rempig | 5:9cc383153bdb | 288 | Write_Data(0x28); |
rempig | 5:9cc383153bdb | 289 | Write_Command(0xc0); |
rempig | 5:9cc383153bdb | 290 | Write_Data(0x2c); |
rempig | 5:9cc383153bdb | 291 | Write_Command(0xc2); |
rempig | 5:9cc383153bdb | 292 | Write_Data(0x01); |
rempig | 5:9cc383153bdb | 293 | Write_Command(0xc3); |
rempig | 5:9cc383153bdb | 294 | Write_Data(0x10); |
rempig | 5:9cc383153bdb | 295 | Write_Command(0xc4); |
rempig | 5:9cc383153bdb | 296 | Write_Data(0x20); |
rempig | 5:9cc383153bdb | 297 | Write_Command(0xc6); |
rempig | 5:9cc383153bdb | 298 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 299 | Write_Command(0xd0); |
rempig | 5:9cc383153bdb | 300 | Write_Data(0xa4); |
rempig | 5:9cc383153bdb | 301 | Write_Data(0xa1); |
rempig | 5:9cc383153bdb | 302 | //----------------------------ST7789S gamma //setting---------------------------------------// |
rempig | 5:9cc383153bdb | 303 | Write_Command(0xe0); |
rempig | 5:9cc383153bdb | 304 | Write_Data(0xd0); |
rempig | 5:9cc383153bdb | 305 | Write_Data(0x00); |
rempig | 5:9cc383153bdb | 306 | Write_Data(0x02); |
rempig | 5:9cc383153bdb | 307 | Write_Data(0x07); |
rempig | 5:9cc383153bdb | 308 | Write_Data(0x0a); |
rempig | 5:9cc383153bdb | 309 | Write_Data(0x28); |
rempig | 5:9cc383153bdb | 310 | Write_Data(0x32); |
rempig | 5:9cc383153bdb | 311 | Write_Data(0x44); |
rempig | 5:9cc383153bdb | 312 | Write_Data(0x42); |
rempig | 5:9cc383153bdb | 313 | Write_Data(0x06); |
rempig | 5:9cc383153bdb | 314 | Write_Data(0x0e); |
rempig | 5:9cc383153bdb | 315 | Write_Data(0x12); |
rempig | 5:9cc383153bdb | 316 | Write_Data(0x14); |
rempig | 5:9cc383153bdb | 317 | Write_Data(0x17); |
rempig | 5:9cc383153bdb | 318 | Write_Command(0xe1); |
rempig | 5:9cc383153bdb | 319 | Write_Data(0xd0); |
rempig | 5:9cc383153bdb | 320 | Write_Data(0x00); |
rempig | 5:9cc383153bdb | 321 | Write_Data(0x02); |
rempig | 5:9cc383153bdb | 322 | Write_Data(0x07); |
rempig | 5:9cc383153bdb | 323 | Write_Data(0x0a); |
rempig | 5:9cc383153bdb | 324 | Write_Data(0x28); |
rempig | 5:9cc383153bdb | 325 | Write_Data(0x31); |
rempig | 5:9cc383153bdb | 326 | Write_Data(0x54); |
rempig | 5:9cc383153bdb | 327 | Write_Data(0x47); |
rempig | 5:9cc383153bdb | 328 | Write_Data(0x0e); |
rempig | 5:9cc383153bdb | 329 | Write_Data(0x1c); |
rempig | 5:9cc383153bdb | 330 | Write_Data(0x17); |
rempig | 5:9cc383153bdb | 331 | Write_Data(0x1b); |
rempig | 5:9cc383153bdb | 332 | Write_Data(0x1e); |
rempig | 5:9cc383153bdb | 333 | /*-----------------------------ST7789S Display ON--------------------------------------*/ |
rempig | 5:9cc383153bdb | 334 | Write_Command(0x29); |
rempig | 5:9cc383153bdb | 335 | wait_ms(50); |
rempig | 5:9cc383153bdb | 336 | }; |
rempig | 5:9cc383153bdb | 337 | |
rempig | 5:9cc383153bdb | 338 | |
rempig | 5:9cc383153bdb | 339 | void Init_SSD1963 (void) { |
rempig | 5:9cc383153bdb | 340 | wait_ms(100); |
rempig | 5:9cc383153bdb | 341 | Write_Command(0x01); //Software Reset |
rempig | 5:9cc383153bdb | 342 | wait_ms(1000); |
rempig | 5:9cc383153bdb | 343 | |
rempig | 5:9cc383153bdb | 344 | Write_Command(0x11); |
rempig | 5:9cc383153bdb | 345 | wait_ms(120); |
rempig | 5:9cc383153bdb | 346 | Write_Command(0x36); |
rempig | 5:9cc383153bdb | 347 | Write_Data(0x00); |
rempig | 5:9cc383153bdb | 348 | Write_Command(0x3a); |
rempig | 5:9cc383153bdb | 349 | Write_Data(0x55); |
rempig | 5:9cc383153bdb | 350 | Write_Command(0xb2); |
rempig | 5:9cc383153bdb | 351 | Write_Data(0x0c); |
rempig | 5:9cc383153bdb | 352 | Write_Data(0x0c); |
rempig | 5:9cc383153bdb | 353 | Write_Data(0x00); |
rempig | 5:9cc383153bdb | 354 | Write_Data(0x33); |
rempig | 5:9cc383153bdb | 355 | Write_Data(0x33); |
rempig | 5:9cc383153bdb | 356 | Write_Command(0xb7); |
rempig | 5:9cc383153bdb | 357 | Write_Data(0x35); |
rempig | 5:9cc383153bdb | 358 | Write_Command(0xbb); |
rempig | 5:9cc383153bdb | 359 | Write_Data(0x19); |
rempig | 5:9cc383153bdb | 360 | Write_Command(0xc0); |
rempig | 5:9cc383153bdb | 361 | Write_Data(0x2c); |
rempig | 5:9cc383153bdb | 362 | Write_Command(0xc2); |
rempig | 5:9cc383153bdb | 363 | Write_Data(0x01); |
rempig | 5:9cc383153bdb | 364 | Write_Command(0xc3); |
rempig | 5:9cc383153bdb | 365 | Write_Data(0x1d); |
rempig | 5:9cc383153bdb | 366 | Write_Command(0xc4); |
rempig | 5:9cc383153bdb | 367 | Write_Data(0x20); |
rempig | 5:9cc383153bdb | 368 | Write_Command(0xc6); |
rempig | 5:9cc383153bdb | 369 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 370 | Write_Command(0xd0); |
rempig | 5:9cc383153bdb | 371 | Write_Data(0xa4); |
rempig | 5:9cc383153bdb | 372 | Write_Data(0xa1); |
rempig | 5:9cc383153bdb | 373 | Write_Command(0xe0); |
rempig | 5:9cc383153bdb | 374 | Write_Data(0xdb); |
rempig | 5:9cc383153bdb | 375 | Write_Data(0x1b); |
rempig | 5:9cc383153bdb | 376 | Write_Data(0x1d); |
rempig | 5:9cc383153bdb | 377 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 378 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 379 | Write_Data(0x3a); |
rempig | 5:9cc383153bdb | 380 | Write_Data(0x3e); |
rempig | 5:9cc383153bdb | 381 | Write_Data(0x45); |
rempig | 5:9cc383153bdb | 382 | Write_Data(0x4d); |
rempig | 5:9cc383153bdb | 383 | Write_Data(0x1c); |
rempig | 5:9cc383153bdb | 384 | Write_Data(0x16); |
rempig | 5:9cc383153bdb | 385 | Write_Data(0x15); |
rempig | 5:9cc383153bdb | 386 | Write_Data(0x1d); |
rempig | 5:9cc383153bdb | 387 | Write_Data(0x21); |
rempig | 5:9cc383153bdb | 388 | Write_Command(0xe1); |
rempig | 5:9cc383153bdb | 389 | Write_Data(0xdb); |
rempig | 5:9cc383153bdb | 390 | Write_Data(0x1b); |
rempig | 5:9cc383153bdb | 391 | Write_Data(0x1d); |
rempig | 5:9cc383153bdb | 392 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 393 | Write_Data(0x0f); |
rempig | 5:9cc383153bdb | 394 | Write_Data(0x3a); |
rempig | 5:9cc383153bdb | 395 | Write_Data(0x3e); |
rempig | 5:9cc383153bdb | 396 | Write_Data(0x45); |
rempig | 5:9cc383153bdb | 397 | Write_Data(0x4d); |
rempig | 5:9cc383153bdb | 398 | Write_Data(0x1c); |
rempig | 5:9cc383153bdb | 399 | Write_Data(0x16); |
rempig | 5:9cc383153bdb | 400 | Write_Data(0x15); |
rempig | 5:9cc383153bdb | 401 | Write_Data(0x1d); |
rempig | 5:9cc383153bdb | 402 | Write_Data(0x21); |
rempig | 5:9cc383153bdb | 403 | Write_Command(0x29); |
rempig | 5:9cc383153bdb | 404 | wait_ms(50); |
rempig | 5:9cc383153bdb | 405 | } |
rempig | 5:9cc383153bdb | 406 | |
rempig | 5:9cc383153bdb | 407 | void ChecksumCalculation(unsigned short *pChecksum,unsigned char *pInData,unsigned long Len) |
rempig | 5:9cc383153bdb | 408 | { |
rempig | 5:9cc383153bdb | 409 | unsigned long i; |
rempig | 5:9cc383153bdb | 410 | for(i = 0; i < Len; i++) |
rempig | 5:9cc383153bdb | 411 | { |
rempig | 5:9cc383153bdb | 412 | *pChecksum += (unsigned short)pInData[i]; |
rempig | 5:9cc383153bdb | 413 | LowByteChecksum = (unsigned char)(*pChecksum & 0xFF); |
rempig | 5:9cc383153bdb | 414 | LowByteChecksum = (LowByteChecksum) >> 7 | (LowByteChecksum) << 1; |
rempig | 5:9cc383153bdb | 415 | *pChecksum = (*pChecksum & 0xFF00) | LowByteChecksum; |
rempig | 5:9cc383153bdb | 416 | } |
rempig | 5:9cc383153bdb | 417 | } |
rempig | 5:9cc383153bdb | 418 | |
rempig | 5:9cc383153bdb | 419 | void RefreshScreen() { |
rempig | 5:9cc383153bdb | 420 | //unsigned char x,y; |
rempig | 5:9cc383153bdb | 421 | int x = 0; |
rempig | 5:9cc383153bdb | 422 | int y = 0; |
rempig | 5:9cc383153bdb | 423 | Write_Command(0x2c); |
rempig | 5:9cc383153bdb | 424 | |
rempig | 5:9cc383153bdb | 425 | for (x=0;x<=320;x++) { |
rempig | 5:9cc383153bdb | 426 | for (y=0;y<=240;y++) { |
rempig | 5:9cc383153bdb | 427 | if (y<80) { |
rempig | 5:9cc383153bdb | 428 | SendData(0xF8,0x00); |
rempig | 5:9cc383153bdb | 429 | } else if (y<160) { |
rempig | 5:9cc383153bdb | 430 | SendData(0x07,(0xE0)); |
rempig | 5:9cc383153bdb | 431 | } else if (y<240) { |
rempig | 5:9cc383153bdb | 432 | SendData((0x00),(0x1F)); |
rempig | 5:9cc383153bdb | 433 | } |
rempig | 5:9cc383153bdb | 434 | } |
rempig | 5:9cc383153bdb | 435 | } |
rempig | 5:9cc383153bdb | 436 | } |
rempig | 5:9cc383153bdb | 437 | |
rempig | 5:9cc383153bdb | 438 | void SendBlack() { |
rempig | 5:9cc383153bdb | 439 | //unsigned char x,y; |
rempig | 5:9cc383153bdb | 440 | int x = 0; |
rempig | 5:9cc383153bdb | 441 | int y = 0; |
rempig | 5:9cc383153bdb | 442 | Write_Command(0x2c); |
rempig | 5:9cc383153bdb | 443 | |
rempig | 5:9cc383153bdb | 444 | for (x=0;x<=320;x++) { |
rempig | 5:9cc383153bdb | 445 | for (y=0;y<=240;y++) { |
rempig | 5:9cc383153bdb | 446 | SendData(0x00,0x00); |
rempig | 5:9cc383153bdb | 447 | } |
rempig | 5:9cc383153bdb | 448 | } |
rempig | 5:9cc383153bdb | 449 | } |
rempig | 5:9cc383153bdb | 450 | |
rempig | 5:9cc383153bdb | 451 | void SendWhite() { |
rempig | 5:9cc383153bdb | 452 | //unsigned char x,y; |
rempig | 5:9cc383153bdb | 453 | int x = 0; |
rempig | 5:9cc383153bdb | 454 | int y = 0; |
rempig | 5:9cc383153bdb | 455 | Write_Command(0x2c); |
rempig | 5:9cc383153bdb | 456 | for (x=0;x<=320;x++) { |
rempig | 5:9cc383153bdb | 457 | for (y=0;y<=240;y++) { |
rempig | 5:9cc383153bdb | 458 | SendData(0xFF,0xFF); |
rempig | 5:9cc383153bdb | 459 | } |
rempig | 5:9cc383153bdb | 460 | } |
rempig | 5:9cc383153bdb | 461 | } |
rempig | 5:9cc383153bdb | 462 | |
rempig | 5:9cc383153bdb | 463 | void ControlLED(int LedAddress, int LedMode) { |
rempig | 5:9cc383153bdb | 464 | char i2cd[3]; |
rempig | 5:9cc383153bdb | 465 | |
rempig | 5:9cc383153bdb | 466 | i2cd[0] = 0x01; |
rempig | 5:9cc383153bdb | 467 | i2cd[1] = LedAddress; |
rempig | 5:9cc383153bdb | 468 | i2cd[2] = LedMode; |
rempig | 5:9cc383153bdb | 469 | |
rempig | 5:9cc383153bdb | 470 | i2c.start(); |
rempig | 5:9cc383153bdb | 471 | i2c.write((addr1 << 1), i2cd, 3, false); |
rempig | 5:9cc383153bdb | 472 | i2c.stop(); |
rempig | 5:9cc383153bdb | 473 | |
rempig | 5:9cc383153bdb | 474 | wait_ms(100); |
rempig | 5:9cc383153bdb | 475 | |
rempig | 5:9cc383153bdb | 476 | i2cd[0] = 0x01; |
rempig | 5:9cc383153bdb | 477 | i2cd[1] = LedAddress + 1; |
rempig | 5:9cc383153bdb | 478 | i2cd[2] = 0xAF; |
rempig | 5:9cc383153bdb | 479 | |
rempig | 5:9cc383153bdb | 480 | i2c.start(); |
rempig | 5:9cc383153bdb | 481 | i2c.write((addr1 << 1), i2cd, 3, false); |
rempig | 5:9cc383153bdb | 482 | i2c.stop(); |
rempig | 5:9cc383153bdb | 483 | wait_ms(100); |
rempig | 5:9cc383153bdb | 484 | } |
rempig | 5:9cc383153bdb | 485 | |
rempig | 5:9cc383153bdb | 486 | void FeedbackTouch(bool touchCorrect) { |
rempig | 5:9cc383153bdb | 487 | if (touchCorrect) { |
rempig | 5:9cc383153bdb | 488 | ControlLED(0x40, 0x08); |
rempig | 5:9cc383153bdb | 489 | ControlLED(0x42, 0x00); |
rempig | 5:9cc383153bdb | 490 | } else { |
rempig | 5:9cc383153bdb | 491 | ControlLED(0x40, 0x00); |
rempig | 5:9cc383153bdb | 492 | ControlLED(0x42, 0x08); |
rempig | 5:9cc383153bdb | 493 | } |
rempig | 5:9cc383153bdb | 494 | } |
rempig | 5:9cc383153bdb | 495 | |
rempig | 5:9cc383153bdb | 496 | |
rempig | 5:9cc383153bdb | 497 | void RefreshScreenGood() { |
rempig | 5:9cc383153bdb | 498 | //unsigned char x,y; |
rempig | 5:9cc383153bdb | 499 | int x = 0; |
rempig | 5:9cc383153bdb | 500 | int y = 0; |
rempig | 5:9cc383153bdb | 501 | Write_Command(0x2c); |
rempig | 5:9cc383153bdb | 502 | |
rempig | 5:9cc383153bdb | 503 | for (x=0;x<=320;x++) { |
rempig | 5:9cc383153bdb | 504 | for (y=0;y<=240;y++) { |
rempig | 5:9cc383153bdb | 505 | SendData(0x07,(0xE0)); |
rempig | 5:9cc383153bdb | 506 | } |
rempig | 5:9cc383153bdb | 507 | } |
rempig | 5:9cc383153bdb | 508 | } |
rempig | 5:9cc383153bdb | 509 | |
rempig | 5:9cc383153bdb | 510 | //LCD********************************************************* |
rempig | 5:9cc383153bdb | 511 | |
rempig | 5:9cc383153bdb | 512 | void initsetup() { |
rempig | 5:9cc383153bdb | 513 | // Wire.begin(); // join i2c bus (address optional for master) |
rempig | 5:9cc383153bdb | 514 | pc.baud(115200); |
rempig | 5:9cc383153bdb | 515 | powerPanel = 0; |
rempig | 5:9cc383153bdb | 516 | } |
rempig | 5:9cc383153bdb | 517 | |
rempig | 5:9cc383153bdb | 518 | |
rempig | 5:9cc383153bdb | 519 | void WaitISP() { |
rempig | 5:9cc383153bdb | 520 | //ISP ready |
rempig | 5:9cc383153bdb | 521 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 522 | int ispready=0; |
rempig | 5:9cc383153bdb | 523 | bool onceOnly = false; |
rempig | 5:9cc383153bdb | 524 | while ((ispready!=0x8F)) { |
rempig | 5:9cc383153bdb | 525 | i2c.start(); |
rempig | 5:9cc383153bdb | 526 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 527 | i2c.read(addrsht,ISPRdy, 8); |
rempig | 5:9cc383153bdb | 528 | ispready = ISPRdy[0]; |
rempig | 5:9cc383153bdb | 529 | i2c.stop(); |
rempig | 5:9cc383153bdb | 530 | if (!onceOnly) { |
rempig | 5:9cc383153bdb | 531 | printf("ISP Ready Byte 0 : "); |
rempig | 5:9cc383153bdb | 532 | printf("0x%02x\n", ispready); |
rempig | 5:9cc383153bdb | 533 | } |
rempig | 5:9cc383153bdb | 534 | onceOnly =true; |
rempig | 5:9cc383153bdb | 535 | wait_ms(400); |
rempig | 5:9cc383153bdb | 536 | |
rempig | 5:9cc383153bdb | 537 | } |
rempig | 5:9cc383153bdb | 538 | wait_ms(100); |
rempig | 5:9cc383153bdb | 539 | } |
rempig | 5:9cc383153bdb | 540 | |
rempig | 5:9cc383153bdb | 541 | void ReadMem() { |
rempig | 5:9cc383153bdb | 542 | //ISP ready |
rempig | 5:9cc383153bdb | 543 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 544 | char ISPRead[8]; |
rempig | 5:9cc383153bdb | 545 | pc.printf("Initializing\r\n"); |
rempig | 5:9cc383153bdb | 546 | fp = fopen("/sd/dump.bin", "r"); |
rempig | 5:9cc383153bdb | 547 | if (fp != NULL) { |
rempig | 5:9cc383153bdb | 548 | fclose(fp); |
rempig | 5:9cc383153bdb | 549 | remove("/sd/dump.bin"); |
rempig | 5:9cc383153bdb | 550 | //pc.printf("Remove an existing file with the same name\r\n"); |
rempig | 5:9cc383153bdb | 551 | } |
rempig | 5:9cc383153bdb | 552 | |
rempig | 5:9cc383153bdb | 553 | fp = fopen("/sd/dump.bin", "w"); |
rempig | 5:9cc383153bdb | 554 | if (fp == NULL) { |
rempig | 5:9cc383153bdb | 555 | pc.printf("Unable to write the file\r\n"); |
rempig | 5:9cc383153bdb | 556 | } else { |
rempig | 5:9cc383153bdb | 557 | |
rempig | 5:9cc383153bdb | 558 | for (int x=0;x<0x0F;x++) { |
rempig | 5:9cc383153bdb | 559 | i2c.start(); |
rempig | 5:9cc383153bdb | 560 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 561 | i2c.write(0x83); |
rempig | 5:9cc383153bdb | 562 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 563 | i2c.write(x); |
rempig | 5:9cc383153bdb | 564 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 565 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 566 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 567 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 568 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 569 | i2c.stop(); |
rempig | 5:9cc383153bdb | 570 | wait_ms(50); |
rempig | 5:9cc383153bdb | 571 | for (int j=0;j<128;j++) { |
rempig | 5:9cc383153bdb | 572 | i2c.start(); |
rempig | 5:9cc383153bdb | 573 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 574 | for (int i=0;i<8;i++) { |
rempig | 5:9cc383153bdb | 575 | i2c.read(addrsht,ISPRead, 8); |
rempig | 5:9cc383153bdb | 576 | |
rempig | 5:9cc383153bdb | 577 | fwrite(ISPRead, 1, 8, fp); |
rempig | 5:9cc383153bdb | 578 | for (int y = 0; y < 8; y++) |
rempig | 5:9cc383153bdb | 579 | { |
rempig | 5:9cc383153bdb | 580 | printf("%02X\r\n", ISPRead[y]); |
rempig | 5:9cc383153bdb | 581 | } |
rempig | 5:9cc383153bdb | 582 | } |
rempig | 5:9cc383153bdb | 583 | i2c.stop(); |
rempig | 5:9cc383153bdb | 584 | } |
rempig | 5:9cc383153bdb | 585 | } |
rempig | 5:9cc383153bdb | 586 | // pc.printf("File successfully written!\r\n"); |
rempig | 5:9cc383153bdb | 587 | fclose(fp); |
rempig | 5:9cc383153bdb | 588 | } |
rempig | 5:9cc383153bdb | 589 | |
rempig | 5:9cc383153bdb | 590 | wait_ms(100); |
rempig | 5:9cc383153bdb | 591 | } |
rempig | 5:9cc383153bdb | 592 | |
rempig | 5:9cc383153bdb | 593 | void ISPUnlock() { |
rempig | 5:9cc383153bdb | 594 | //unlock |
rempig | 5:9cc383153bdb | 595 | i2c.start(); |
rempig | 5:9cc383153bdb | 596 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 597 | i2c.write(0x87); |
rempig | 5:9cc383153bdb | 598 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 599 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 600 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 601 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 602 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 603 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 604 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 605 | i2c.stop(); |
rempig | 5:9cc383153bdb | 606 | wait_ms(150); |
rempig | 5:9cc383153bdb | 607 | } |
rempig | 5:9cc383153bdb | 608 | |
rempig | 5:9cc383153bdb | 609 | void ISPReset() { |
rempig | 5:9cc383153bdb | 610 | //reset |
rempig | 5:9cc383153bdb | 611 | i2c.start(); |
rempig | 5:9cc383153bdb | 612 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 613 | i2c.write(0x84); |
rempig | 5:9cc383153bdb | 614 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 615 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 616 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 617 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 618 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 619 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 620 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 621 | i2c.stop(); |
rempig | 5:9cc383153bdb | 622 | } |
rempig | 5:9cc383153bdb | 623 | |
rempig | 5:9cc383153bdb | 624 | |
rempig | 5:9cc383153bdb | 625 | void ISPMassErase() { |
rempig | 5:9cc383153bdb | 626 | //mass erase |
rempig | 5:9cc383153bdb | 627 | i2c.start(); |
rempig | 5:9cc383153bdb | 628 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 629 | i2c.write(0x86); |
rempig | 5:9cc383153bdb | 630 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 631 | i2c.write(0x10); |
rempig | 5:9cc383153bdb | 632 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 633 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 634 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 635 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 636 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 637 | i2c.stop(); |
rempig | 5:9cc383153bdb | 638 | } |
rempig | 5:9cc383153bdb | 639 | |
rempig | 5:9cc383153bdb | 640 | |
rempig | 5:9cc383153bdb | 641 | int writeI2CSitronix(int address, char i2cWrite[], int wLen) { |
rempig | 5:9cc383153bdb | 642 | i2c.start(); |
rempig | 5:9cc383153bdb | 643 | int error = i2c.write(address, i2cWrite, wLen); |
rempig | 5:9cc383153bdb | 644 | i2c.stop(); |
rempig | 5:9cc383153bdb | 645 | return error; |
rempig | 5:9cc383153bdb | 646 | } |
rempig | 5:9cc383153bdb | 647 | |
rempig | 5:9cc383153bdb | 648 | |
rempig | 5:9cc383153bdb | 649 | int writeByteI2CSitronix(int address, char i2cWByte) { |
rempig | 5:9cc383153bdb | 650 | i2c.start(); |
rempig | 5:9cc383153bdb | 651 | i2c.write(address); |
rempig | 5:9cc383153bdb | 652 | i2c.write(0x01); |
rempig | 5:9cc383153bdb | 653 | i2c.stop(); |
rempig | 5:9cc383153bdb | 654 | } |
rempig | 5:9cc383153bdb | 655 | |
rempig | 5:9cc383153bdb | 656 | |
screamer | 0:525c842a3c89 | 657 | int main() { |
rempig | 5:9cc383153bdb | 658 | buttonNext.mode(PullUp); |
rempig | 5:9cc383153bdb | 659 | initsetup(); |
rempig | 5:9cc383153bdb | 660 | char i2cd[3]; |
rempig | 5:9cc383153bdb | 661 | |
rempig | 5:9cc383153bdb | 662 | //char i2cwr[2]; |
rempig | 5:9cc383153bdb | 663 | int i2cr = 0x00; |
rempig | 5:9cc383153bdb | 664 | |
rempig | 5:9cc383153bdb | 665 | int i2crkey = 0x00; |
rempig | 5:9cc383153bdb | 666 | int i2crxhi = 0x00; |
rempig | 5:9cc383153bdb | 667 | int i2cryhi = 0x00; |
rempig | 5:9cc383153bdb | 668 | int i2crxlo = 0x00; |
rempig | 5:9cc383153bdb | 669 | int i2crylo = 0x00; |
rempig | 5:9cc383153bdb | 670 | |
rempig | 5:9cc383153bdb | 671 | int i2crx = 0x00; |
rempig | 5:9cc383153bdb | 672 | int i2cry = 0x00; |
rempig | 5:9cc383153bdb | 673 | |
rempig | 5:9cc383153bdb | 674 | int databin = 0x00; |
rempig | 5:9cc383153bdb | 675 | unsigned char datalo; |
rempig | 5:9cc383153bdb | 676 | unsigned char datahi; |
rempig | 5:9cc383153bdb | 677 | //i2c.frequency(100000); |
rempig | 5:9cc383153bdb | 678 | while (1) { |
rempig | 5:9cc383153bdb | 679 | switch (STATEMACHINE) { |
rempig | 5:9cc383153bdb | 680 | case IDLESTATE: //Wait for start from the computer |
rempig | 5:9cc383153bdb | 681 | printf("IDLE\n"); |
rempig | 5:9cc383153bdb | 682 | powerPanel = 0; |
rempig | 5:9cc383153bdb | 683 | |
rempig | 5:9cc383153bdb | 684 | addr1 = 0; |
rempig | 5:9cc383153bdb | 685 | addr2 = 0; |
rempig | 5:9cc383153bdb | 686 | STATEMACHINE = POWERON; |
rempig | 5:9cc383153bdb | 687 | addr1 = 0; |
rempig | 5:9cc383153bdb | 688 | break; |
rempig | 5:9cc383153bdb | 689 | |
rempig | 5:9cc383153bdb | 690 | case POWERON: //power on the panel |
rempig | 5:9cc383153bdb | 691 | printf("POWERON\n"); |
rempig | 5:9cc383153bdb | 692 | powerPanel = 1; |
rempig | 5:9cc383153bdb | 693 | STATEMACHINE = GETADDRESS; |
rempig | 5:9cc383153bdb | 694 | break; |
rempig | 5:9cc383153bdb | 695 | |
rempig | 5:9cc383153bdb | 696 | case GETADDRESS: //get panel button address from software |
rempig | 5:9cc383153bdb | 697 | STATEMACHINE = GOTOAPP; |
rempig | 5:9cc383153bdb | 698 | addr1 = 44; |
rempig | 5:9cc383153bdb | 699 | addr2 = 85; |
rempig | 5:9cc383153bdb | 700 | wait_ms(100); |
rempig | 5:9cc383153bdb | 701 | break; |
rempig | 5:9cc383153bdb | 702 | |
rempig | 5:9cc383153bdb | 703 | case GOTOAPP: //Reset the panel |
rempig | 5:9cc383153bdb | 704 | //POR timing fixer |
rempig | 5:9cc383153bdb | 705 | printf("GOTOAPP\n"); |
rempig | 5:9cc383153bdb | 706 | powerPanel = 0; |
rempig | 5:9cc383153bdb | 707 | wait_ms(2000); |
rempig | 5:9cc383153bdb | 708 | printf("GOTOAPPDONE1\n"); |
rempig | 5:9cc383153bdb | 709 | |
rempig | 5:9cc383153bdb | 710 | powerPanel = 1; |
rempig | 5:9cc383153bdb | 711 | wait_ms(1500); |
rempig | 5:9cc383153bdb | 712 | printf("GOTOAPPDONE2\n"); |
rempig | 5:9cc383153bdb | 713 | |
rempig | 5:9cc383153bdb | 714 | STATEMACHINE = UIBC5VENB; |
rempig | 5:9cc383153bdb | 715 | break; |
rempig | 5:9cc383153bdb | 716 | |
rempig | 5:9cc383153bdb | 717 | |
rempig | 5:9cc383153bdb | 718 | case UIBC5VENB: //power on the panel |
rempig | 5:9cc383153bdb | 719 | //char i2cd[3]; |
rempig | 5:9cc383153bdb | 720 | |
rempig | 5:9cc383153bdb | 721 | i2cd[0] = 0x01; |
rempig | 5:9cc383153bdb | 722 | i2cd[1] = 0x06; |
rempig | 5:9cc383153bdb | 723 | i2cd[2] = 0xFF; |
rempig | 5:9cc383153bdb | 724 | |
rempig | 5:9cc383153bdb | 725 | i2c.start(); |
rempig | 5:9cc383153bdb | 726 | i2c.write((addr1 << 1), i2cd, 3, false); |
rempig | 5:9cc383153bdb | 727 | i2c.stop(); |
rempig | 5:9cc383153bdb | 728 | |
rempig | 5:9cc383153bdb | 729 | wait_ms(100); |
rempig | 5:9cc383153bdb | 730 | RDDID_Read(0x04); //Read RDDID |
rempig | 5:9cc383153bdb | 731 | |
rempig | 5:9cc383153bdb | 732 | STATEMACHINE = LED1CTRL; |
rempig | 5:9cc383153bdb | 733 | //STATEMACHINE = FWUPDATE; |
rempig | 5:9cc383153bdb | 734 | |
screamer | 1:93d41c73ac7d | 735 | wait(2); |
screamer | 1:93d41c73ac7d | 736 | pc.printf("Initializing\r\n"); |
screamer | 0:525c842a3c89 | 737 | fp = fopen("/sd/hello.txt", "r"); |
screamer | 0:525c842a3c89 | 738 | if (fp != NULL) { |
screamer | 0:525c842a3c89 | 739 | fclose(fp); |
screamer | 0:525c842a3c89 | 740 | remove("/sd/hello.txt"); |
rempig | 5:9cc383153bdb | 741 | //pc.printf("Remove an existing file with the same name\r\n"); |
screamer | 0:525c842a3c89 | 742 | } |
rempig | 5:9cc383153bdb | 743 | |
screamer | 0:525c842a3c89 | 744 | fp = fopen("/sd/hello.txt", "w"); |
screamer | 0:525c842a3c89 | 745 | if (fp == NULL) { |
rempig | 5:9cc383153bdb | 746 | // pc.printf("Unable to write the file\r\n"); |
screamer | 0:525c842a3c89 | 747 | } else { |
screamer | 0:525c842a3c89 | 748 | fprintf(fp, "mbed SDCard application!"); |
screamer | 0:525c842a3c89 | 749 | fclose(fp); |
rempig | 5:9cc383153bdb | 750 | // pc.printf("File successfully written!\r\n"); |
screamer | 0:525c842a3c89 | 751 | } |
rempig | 5:9cc383153bdb | 752 | fclose(fp); |
rempig | 5:9cc383153bdb | 753 | |
rempig | 5:9cc383153bdb | 754 | |
rempig | 5:9cc383153bdb | 755 | break; |
rempig | 5:9cc383153bdb | 756 | |
rempig | 5:9cc383153bdb | 757 | |
rempig | 5:9cc383153bdb | 758 | case FWUPDATE: |
rempig | 5:9cc383153bdb | 759 | RDDID_Read(0x04); //Read RDDID |
rempig | 5:9cc383153bdb | 760 | |
rempig | 5:9cc383153bdb | 761 | //Go to ISP mode |
rempig | 5:9cc383153bdb | 762 | char i2fwupdatemode[] = {0,'S',0,'T',0,'X',0,'_',0,'F',0,'W',0,'U',0,'P'}; |
rempig | 5:9cc383153bdb | 763 | |
rempig | 5:9cc383153bdb | 764 | //i2c.start(); |
rempig | 5:9cc383153bdb | 765 | //i2c.write((addr2 << 1), i2fwupdatemode, 9); |
rempig | 5:9cc383153bdb | 766 | //i2c.stop(); |
rempig | 5:9cc383153bdb | 767 | |
rempig | 5:9cc383153bdb | 768 | for(int i=0;i<sizeof(i2fwupdatemode); i+=2) { |
rempig | 5:9cc383153bdb | 769 | //pc.printf("0x%02x\n", &i2fwupdatemode[i]); |
rempig | 5:9cc383153bdb | 770 | if(writeI2CSitronix((addr2 << 1), &i2fwupdatemode[i], 2) < 0) |
rempig | 5:9cc383153bdb | 771 | { |
rempig | 5:9cc383153bdb | 772 | pc.printf("Entering ISP fail.\n"); |
rempig | 5:9cc383153bdb | 773 | goto done; |
rempig | 5:9cc383153bdb | 774 | } |
rempig | 5:9cc383153bdb | 775 | } |
rempig | 5:9cc383153bdb | 776 | |
rempig | 5:9cc383153bdb | 777 | wait_ms(150); |
rempig | 5:9cc383153bdb | 778 | |
rempig | 5:9cc383153bdb | 779 | |
rempig | 5:9cc383153bdb | 780 | ISPReset(); |
rempig | 5:9cc383153bdb | 781 | wait(1); |
rempig | 5:9cc383153bdb | 782 | |
rempig | 5:9cc383153bdb | 783 | //REG_DEVICE_STATUS |
rempig | 5:9cc383153bdb | 784 | |
rempig | 5:9cc383153bdb | 785 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 786 | i2c.start(); |
rempig | 5:9cc383153bdb | 787 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 788 | i2c.write(0x01); |
rempig | 5:9cc383153bdb | 789 | i2c.stop(); |
rempig | 5:9cc383153bdb | 790 | wait_ms(50); |
rempig | 5:9cc383153bdb | 791 | i2c.start(); |
rempig | 5:9cc383153bdb | 792 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 793 | i2c.read(addrsht,fwROM, 8); |
rempig | 5:9cc383153bdb | 794 | i2c.stop(); |
rempig | 5:9cc383153bdb | 795 | |
rempig | 5:9cc383153bdb | 796 | printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 797 | printf("ROM Status : "); |
rempig | 5:9cc383153bdb | 798 | printf("0x%08x%08x\n\n", *(int *)(fwROM+4), *(int *)fwROM); |
rempig | 5:9cc383153bdb | 799 | |
rempig | 5:9cc383153bdb | 800 | wait_ms(100); |
rempig | 5:9cc383153bdb | 801 | |
rempig | 5:9cc383153bdb | 802 | |
rempig | 5:9cc383153bdb | 803 | //Flash page erase |
rempig | 5:9cc383153bdb | 804 | for(int i=0;i<16; i++) { |
rempig | 5:9cc383153bdb | 805 | |
rempig | 5:9cc383153bdb | 806 | pc.printf("Unlocking...\r\n"); |
rempig | 5:9cc383153bdb | 807 | ISPUnlock(); |
rempig | 5:9cc383153bdb | 808 | |
rempig | 5:9cc383153bdb | 809 | //ISP ready |
rempig | 5:9cc383153bdb | 810 | WaitISP(); |
rempig | 5:9cc383153bdb | 811 | |
rempig | 5:9cc383153bdb | 812 | pc.printf("Erasing page 0x%x...\r\n", i); |
rempig | 5:9cc383153bdb | 813 | //erase |
rempig | 5:9cc383153bdb | 814 | i2c.start(); |
rempig | 5:9cc383153bdb | 815 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 816 | i2c.write(0x80); |
rempig | 5:9cc383153bdb | 817 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 818 | i2c.write(i); |
rempig | 5:9cc383153bdb | 819 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 820 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 821 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 822 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 823 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 824 | i2c.stop(); |
rempig | 5:9cc383153bdb | 825 | //wait(20); |
rempig | 5:9cc383153bdb | 826 | WaitISP(); |
rempig | 5:9cc383153bdb | 827 | //wait(20); |
rempig | 5:9cc383153bdb | 828 | } |
rempig | 5:9cc383153bdb | 829 | |
rempig | 5:9cc383153bdb | 830 | //******************************************PROGRAMSTART***************************************************************** |
rempig | 5:9cc383153bdb | 831 | //Flash Page Program |
rempig | 5:9cc383153bdb | 832 | |
rempig | 5:9cc383153bdb | 833 | fName = "/sd/sitronix_sitronix_st16xx.LM28_v05110323_01_20181023.bin"; |
rempig | 5:9cc383153bdb | 834 | pc.printf("Reading SD...\r\n"); |
rempig | 5:9cc383153bdb | 835 | //Open File |
rempig | 5:9cc383153bdb | 836 | pc.printf("Initializing\r\n"); |
rempig | 5:9cc383153bdb | 837 | wait(2); |
rempig | 5:9cc383153bdb | 838 | //pc.printf(" Opening %s\r\n","/sd/sitronix_sitronix_st16xx.LM28_v05110323_01_20181023.bin"); |
rempig | 5:9cc383153bdb | 839 | pc.printf("Opening %s\r\n",fName); |
rempig | 5:9cc383153bdb | 840 | //fp = fopen("/sd/sitronix_sitronix_st16xx.LM28_v05110323_01_20181023.bin", "r"); |
rempig | 5:9cc383153bdb | 841 | fp = fopen(fName, "r"); |
rempig | 5:9cc383153bdb | 842 | if (fp == NULL) { |
rempig | 5:9cc383153bdb | 843 | fclose(fp); |
rempig | 5:9cc383153bdb | 844 | pc.printf("Error: File not found!\r\n"); |
rempig | 5:9cc383153bdb | 845 | } |
rempig | 5:9cc383153bdb | 846 | pageNum = 0; |
rempig | 5:9cc383153bdb | 847 | |
rempig | 5:9cc383153bdb | 848 | pc.printf("writing flash...\r\n"); |
rempig | 5:9cc383153bdb | 849 | |
rempig | 5:9cc383153bdb | 850 | while ((!feof(fp)) && (pageNum < 0x0F)) { |
rempig | 5:9cc383153bdb | 851 | //ISP_WRITE_FLASH (BIN) |
rempig | 5:9cc383153bdb | 852 | pc.printf("Unlocking...\r\n"); |
rempig | 5:9cc383153bdb | 853 | ISPUnlock(); |
rempig | 5:9cc383153bdb | 854 | WaitISP(); |
rempig | 5:9cc383153bdb | 855 | pc.printf("Writing bin page 0x%02x...\r\n", pageNum); |
rempig | 5:9cc383153bdb | 856 | |
rempig | 5:9cc383153bdb | 857 | i2c.start(); |
rempig | 5:9cc383153bdb | 858 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 859 | i2c.write(0x82); |
rempig | 5:9cc383153bdb | 860 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 861 | i2c.write(pageNum); |
rempig | 5:9cc383153bdb | 862 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 863 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 864 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 865 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 866 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 867 | i2c.stop(); |
rempig | 5:9cc383153bdb | 868 | wait_ms(50); |
rempig | 5:9cc383153bdb | 869 | int cntByteLen = 7; |
rempig | 5:9cc383153bdb | 870 | //ISP_WRITE_DATA (BIN) |
rempig | 5:9cc383153bdb | 871 | //open bin file |
rempig | 5:9cc383153bdb | 872 | cntWrite = 0; |
rempig | 5:9cc383153bdb | 873 | |
rempig | 5:9cc383153bdb | 874 | while ((cntWrite < 147)) { //page loop |
rempig | 5:9cc383153bdb | 875 | i2c.start(); |
rempig | 5:9cc383153bdb | 876 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 877 | i2c.write(0x81); |
rempig | 5:9cc383153bdb | 878 | cntbytes = 0; |
rempig | 5:9cc383153bdb | 879 | wait_ms(50); |
rempig | 5:9cc383153bdb | 880 | cntByteLen = 7; |
rempig | 5:9cc383153bdb | 881 | while ((cntbytes < cntByteLen) && (((cntWrite*7)+(cntbytes)) < 1024)) { //write data loop |
rempig | 5:9cc383153bdb | 882 | databin = fgetc(fp); |
rempig | 5:9cc383153bdb | 883 | //wait(1); |
rempig | 5:9cc383153bdb | 884 | // if (databin == 0xffffffff) { |
rempig | 5:9cc383153bdb | 885 | // pc.printf("Printing FF\r\n"); |
rempig | 5:9cc383153bdb | 886 | // i2c.write(0xFF); |
rempig | 5:9cc383153bdb | 887 | // } else { |
rempig | 5:9cc383153bdb | 888 | i2c.write(databin); |
rempig | 5:9cc383153bdb | 889 | // } |
rempig | 5:9cc383153bdb | 890 | cntbytes++; |
rempig | 5:9cc383153bdb | 891 | } //write data loop end |
rempig | 5:9cc383153bdb | 892 | i2c.stop(); |
rempig | 5:9cc383153bdb | 893 | cntWrite++; |
rempig | 5:9cc383153bdb | 894 | wait_ms(50); |
rempig | 5:9cc383153bdb | 895 | } //page loop end |
rempig | 5:9cc383153bdb | 896 | wait_ms(150); |
rempig | 5:9cc383153bdb | 897 | WaitISP(); |
rempig | 5:9cc383153bdb | 898 | pageNum++; |
rempig | 5:9cc383153bdb | 899 | } |
rempig | 5:9cc383153bdb | 900 | fclose(fp); |
rempig | 5:9cc383153bdb | 901 | //free(fp); |
rempig | 5:9cc383153bdb | 902 | //ISP_WRITE_FLASH (CFG) |
rempig | 5:9cc383153bdb | 903 | //open bin file |
rempig | 5:9cc383153bdb | 904 | |
rempig | 5:9cc383153bdb | 905 | switch(RDDIDVal) { |
rempig | 5:9cc383153bdb | 906 | case 0x540000: |
rempig | 5:9cc383153bdb | 907 | fName = "540000.cfg"; |
rempig | 5:9cc383153bdb | 908 | printf("Yeebo\r\n"); |
rempig | 5:9cc383153bdb | 909 | break; |
rempig | 5:9cc383153bdb | 910 | |
rempig | 5:9cc383153bdb | 911 | case 0x448552: |
rempig | 5:9cc383153bdb | 912 | fName = "448552.cfg"; |
rempig | 5:9cc383153bdb | 913 | printf("Tianma1\r\n"); |
rempig | 5:9cc383153bdb | 914 | break; |
rempig | 5:9cc383153bdb | 915 | |
rempig | 5:9cc383153bdb | 916 | case 0x468552: |
rempig | 5:9cc383153bdb | 917 | fName = "468552.cfg"; |
rempig | 5:9cc383153bdb | 918 | printf("Tianma2\r\n"); |
rempig | 5:9cc383153bdb | 919 | break; |
rempig | 5:9cc383153bdb | 920 | |
rempig | 5:9cc383153bdb | 921 | case 0x560000: |
rempig | 5:9cc383153bdb | 922 | fName = "/sd/560000.cfg"; |
rempig | 5:9cc383153bdb | 923 | printf("Yeebo56\r\n"); |
rempig | 5:9cc383153bdb | 924 | break; |
rempig | 5:9cc383153bdb | 925 | |
rempig | 5:9cc383153bdb | 926 | default: |
rempig | 5:9cc383153bdb | 927 | fName = "540000.cfg"; |
rempig | 5:9cc383153bdb | 928 | printf("YeeboDefault\r\n"); |
rempig | 5:9cc383153bdb | 929 | break; |
rempig | 5:9cc383153bdb | 930 | } |
rempig | 5:9cc383153bdb | 931 | pc.printf("Initializing\r\n"); |
rempig | 5:9cc383153bdb | 932 | wait(2); |
rempig | 5:9cc383153bdb | 933 | //fName = "/sd/touchtest.bmp"; |
rempig | 5:9cc383153bdb | 934 | pc.printf("Opening : %s\r\n",fName); |
rempig | 5:9cc383153bdb | 935 | fp = fopen(fName, "r"); |
rempig | 5:9cc383153bdb | 936 | if (fp == NULL) { |
rempig | 5:9cc383153bdb | 937 | fclose(fp); |
rempig | 5:9cc383153bdb | 938 | pc.printf("Error: File not found!\r\n"); |
rempig | 5:9cc383153bdb | 939 | } |
rempig | 5:9cc383153bdb | 940 | pc.printf("start writing cfg\r\n"); |
rempig | 5:9cc383153bdb | 941 | |
rempig | 5:9cc383153bdb | 942 | pageNum = 0x0F; |
rempig | 5:9cc383153bdb | 943 | int cntByteLen = 7; |
rempig | 5:9cc383153bdb | 944 | |
rempig | 5:9cc383153bdb | 945 | while ((!feof(fp)) && (pageNum < 0x10)) { |
rempig | 5:9cc383153bdb | 946 | //ISP_WRITE_FLASH (CFG) |
rempig | 5:9cc383153bdb | 947 | pc.printf("Unlocking...\r\n"); |
rempig | 5:9cc383153bdb | 948 | ISPUnlock(); |
rempig | 5:9cc383153bdb | 949 | WaitISP(); |
rempig | 5:9cc383153bdb | 950 | pc.printf("Writing cfg page 0x%02x...\r\n", pageNum); |
rempig | 5:9cc383153bdb | 951 | |
rempig | 5:9cc383153bdb | 952 | i2c.start(); |
rempig | 5:9cc383153bdb | 953 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 954 | i2c.write(0x82); |
rempig | 5:9cc383153bdb | 955 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 956 | i2c.write(pageNum); |
rempig | 5:9cc383153bdb | 957 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 958 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 959 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 960 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 961 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 962 | i2c.stop(); |
rempig | 5:9cc383153bdb | 963 | wait_ms(50); |
rempig | 5:9cc383153bdb | 964 | int cntByteLen = 7; |
rempig | 5:9cc383153bdb | 965 | |
rempig | 5:9cc383153bdb | 966 | //ISP_WRITE_DATA (CFG) |
rempig | 5:9cc383153bdb | 967 | //open bin file |
rempig | 5:9cc383153bdb | 968 | cntWrite = 0; |
rempig | 5:9cc383153bdb | 969 | |
rempig | 5:9cc383153bdb | 970 | while ((cntWrite < 147)) { //page loop |
rempig | 5:9cc383153bdb | 971 | i2c.start(); |
rempig | 5:9cc383153bdb | 972 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 973 | i2c.write(0x81); |
rempig | 5:9cc383153bdb | 974 | cntbytes = 0; |
rempig | 5:9cc383153bdb | 975 | wait_ms(50); |
rempig | 5:9cc383153bdb | 976 | //cntByteLen = 1024-cntWrite*7; |
rempig | 5:9cc383153bdb | 977 | //if (cntByteLen>7) { |
rempig | 5:9cc383153bdb | 978 | // cntByteLen = 7; |
rempig | 5:9cc383153bdb | 979 | //} |
rempig | 5:9cc383153bdb | 980 | cntByteLen = 7; |
rempig | 5:9cc383153bdb | 981 | while ((cntbytes < cntByteLen) && (((cntWrite*7)+(cntbytes)) < 1024)) { //write data loop |
rempig | 5:9cc383153bdb | 982 | databin = fgetc(fp); |
rempig | 5:9cc383153bdb | 983 | pc.printf("Writing data 0x%02x...\r\n", databin); |
rempig | 5:9cc383153bdb | 984 | pc.printf("CntBytes : 0x%0x\r\n",cntbytes); |
rempig | 5:9cc383153bdb | 985 | //wait(1); |
rempig | 5:9cc383153bdb | 986 | if (databin == 0xffffffff) { |
rempig | 5:9cc383153bdb | 987 | pc.printf("Printing FF\r\n"); |
rempig | 5:9cc383153bdb | 988 | i2c.write(0xFF); |
rempig | 5:9cc383153bdb | 989 | } else { |
rempig | 5:9cc383153bdb | 990 | pc.printf("Printing Normal\r\n"); |
rempig | 5:9cc383153bdb | 991 | i2c.write(databin); |
rempig | 5:9cc383153bdb | 992 | } |
rempig | 5:9cc383153bdb | 993 | |
rempig | 5:9cc383153bdb | 994 | cntbytes++; |
rempig | 5:9cc383153bdb | 995 | } //write data loop end |
rempig | 5:9cc383153bdb | 996 | i2c.stop(); |
rempig | 5:9cc383153bdb | 997 | cntWrite++; |
rempig | 5:9cc383153bdb | 998 | wait_ms(50); |
rempig | 5:9cc383153bdb | 999 | } //page loop end |
rempig | 5:9cc383153bdb | 1000 | wait_ms(150); |
rempig | 5:9cc383153bdb | 1001 | WaitISP(); |
rempig | 5:9cc383153bdb | 1002 | pageNum++; |
rempig | 5:9cc383153bdb | 1003 | } |
rempig | 5:9cc383153bdb | 1004 | |
rempig | 5:9cc383153bdb | 1005 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1006 | fclose(fp); |
rempig | 5:9cc383153bdb | 1007 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1008 | |
rempig | 5:9cc383153bdb | 1009 | //******************************************PROGRAMEND***************************************************************** |
rempig | 5:9cc383153bdb | 1010 | |
rempig | 5:9cc383153bdb | 1011 | /* |
rempig | 5:9cc383153bdb | 1012 | //Flash Page Read |
rempig | 5:9cc383153bdb | 1013 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1014 | i2c.start(); |
rempig | 5:9cc383153bdb | 1015 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1016 | i2c.write(0x83); |
rempig | 5:9cc383153bdb | 1017 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 1018 | i2c.write(0x00); //read page 00 |
rempig | 5:9cc383153bdb | 1019 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 1020 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 1021 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 1022 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 1023 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 1024 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1025 | |
rempig | 5:9cc383153bdb | 1026 | i2c.start(); |
rempig | 5:9cc383153bdb | 1027 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1028 | i2c.read(addrsht,flRead, 1024); |
rempig | 5:9cc383153bdb | 1029 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1030 | |
rempig | 5:9cc383153bdb | 1031 | printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1032 | printf("0x%01024x\n", flRead); |
rempig | 5:9cc383153bdb | 1033 | */ |
rempig | 5:9cc383153bdb | 1034 | ReadMem(); |
rempig | 5:9cc383153bdb | 1035 | |
rempig | 5:9cc383153bdb | 1036 | printf("1\r\n"); |
rempig | 5:9cc383153bdb | 1037 | //Reset A008 |
rempig | 5:9cc383153bdb | 1038 | ISPReset(); |
rempig | 5:9cc383153bdb | 1039 | wait(2); |
rempig | 5:9cc383153bdb | 1040 | /* |
rempig | 5:9cc383153bdb | 1041 | //Flash Mass Erase |
rempig | 5:9cc383153bdb | 1042 | ISPUnlock(); |
rempig | 5:9cc383153bdb | 1043 | WaitISP(); |
rempig | 5:9cc383153bdb | 1044 | */ |
rempig | 5:9cc383153bdb | 1045 | |
rempig | 5:9cc383153bdb | 1046 | done: |
rempig | 5:9cc383153bdb | 1047 | STATEMACHINE = LED1CTRL; |
rempig | 5:9cc383153bdb | 1048 | |
rempig | 5:9cc383153bdb | 1049 | break; |
rempig | 5:9cc383153bdb | 1050 | |
rempig | 5:9cc383153bdb | 1051 | |
rempig | 5:9cc383153bdb | 1052 | case LED1CTRL: |
rempig | 5:9cc383153bdb | 1053 | printf("2\r\n"); |
rempig | 5:9cc383153bdb | 1054 | ControlLED(0x40, 0x08); |
rempig | 5:9cc383153bdb | 1055 | ControlLED(0x42, 0x08); |
rempig | 5:9cc383153bdb | 1056 | |
rempig | 5:9cc383153bdb | 1057 | STATEMACHINE = UIBCDISPENB; |
rempig | 5:9cc383153bdb | 1058 | break; |
rempig | 5:9cc383153bdb | 1059 | |
rempig | 5:9cc383153bdb | 1060 | case UIBCDISPENB: //display enable |
rempig | 5:9cc383153bdb | 1061 | //Serial.println("UIBCDISPENB"); |
rempig | 5:9cc383153bdb | 1062 | |
rempig | 5:9cc383153bdb | 1063 | i2cd[0] = 0x01; |
rempig | 5:9cc383153bdb | 1064 | i2cd[1] = 0x02; |
rempig | 5:9cc383153bdb | 1065 | i2cd[2] = 0xFF; |
rempig | 5:9cc383153bdb | 1066 | |
rempig | 5:9cc383153bdb | 1067 | i2c.start(); |
rempig | 5:9cc383153bdb | 1068 | i2c.write((addr1 << 1), i2cd, 3, false); |
rempig | 5:9cc383153bdb | 1069 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1070 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1071 | |
rempig | 5:9cc383153bdb | 1072 | STATEMACHINE = UIBCDISPENB2; |
rempig | 5:9cc383153bdb | 1073 | break; |
rempig | 5:9cc383153bdb | 1074 | |
rempig | 5:9cc383153bdb | 1075 | case UIBCDISPENB2: |
rempig | 5:9cc383153bdb | 1076 | //Serial.println("UIBCDISPENB2"); |
rempig | 5:9cc383153bdb | 1077 | |
rempig | 5:9cc383153bdb | 1078 | i2cd[0] = 0x01; |
rempig | 5:9cc383153bdb | 1079 | i2cd[1] = 0x05; |
rempig | 5:9cc383153bdb | 1080 | i2cd[2] = 0xFF; |
rempig | 5:9cc383153bdb | 1081 | |
rempig | 5:9cc383153bdb | 1082 | i2c.start(); |
rempig | 5:9cc383153bdb | 1083 | i2c.write((addr1 << 1), i2cd, 3, false); |
rempig | 5:9cc383153bdb | 1084 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1085 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1086 | STATEMACHINE = UIBCAUXTOUCHENABLE; |
rempig | 5:9cc383153bdb | 1087 | break; |
rempig | 5:9cc383153bdb | 1088 | |
rempig | 5:9cc383153bdb | 1089 | |
rempig | 5:9cc383153bdb | 1090 | case UIBCAUXTOUCHENABLE: |
rempig | 5:9cc383153bdb | 1091 | //Serial.println("UIBCAUXTOUCHENABLE"); |
rempig | 5:9cc383153bdb | 1092 | |
rempig | 5:9cc383153bdb | 1093 | i2cd[0] = 0x01; |
rempig | 5:9cc383153bdb | 1094 | i2cd[1] = 0x07; |
rempig | 5:9cc383153bdb | 1095 | i2cd[2] = 0xFF; |
rempig | 5:9cc383153bdb | 1096 | |
rempig | 5:9cc383153bdb | 1097 | i2c.start(); |
rempig | 5:9cc383153bdb | 1098 | i2c.write((addr1 << 1), i2cd, 3, false); |
rempig | 5:9cc383153bdb | 1099 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1100 | |
rempig | 5:9cc383153bdb | 1101 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1102 | STATEMACHINE = UIBCBACKLIGHTDUTY; |
rempig | 5:9cc383153bdb | 1103 | break; |
rempig | 5:9cc383153bdb | 1104 | |
rempig | 5:9cc383153bdb | 1105 | |
rempig | 5:9cc383153bdb | 1106 | |
rempig | 5:9cc383153bdb | 1107 | case UIBCBACKLIGHTDUTY: |
rempig | 5:9cc383153bdb | 1108 | printf("UIBCBACKLIGHTDUTY\n"); |
rempig | 5:9cc383153bdb | 1109 | |
rempig | 5:9cc383153bdb | 1110 | i2cd[0] = 0x01; |
rempig | 5:9cc383153bdb | 1111 | i2cd[1] = 0x80; |
rempig | 5:9cc383153bdb | 1112 | i2cd[2] = 0xAF; |
rempig | 5:9cc383153bdb | 1113 | |
rempig | 5:9cc383153bdb | 1114 | i2c.start(); |
rempig | 5:9cc383153bdb | 1115 | i2c.write((addr1 << 1), i2cd, 3, false); |
rempig | 5:9cc383153bdb | 1116 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1117 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1118 | |
rempig | 5:9cc383153bdb | 1119 | STATEMACHINE = LCDTESTINIT; |
rempig | 5:9cc383153bdb | 1120 | break; |
rempig | 5:9cc383153bdb | 1121 | |
rempig | 5:9cc383153bdb | 1122 | case LCDTESTINIT: |
rempig | 5:9cc383153bdb | 1123 | printf("LCDTESTINIT\n"); |
rempig | 5:9cc383153bdb | 1124 | switch(RDDIDVal) { |
rempig | 5:9cc383153bdb | 1125 | case 0x540000: |
rempig | 5:9cc383153bdb | 1126 | yeebo_st7789v_power_on(); |
rempig | 5:9cc383153bdb | 1127 | printf("Yeebo\r\n"); |
rempig | 5:9cc383153bdb | 1128 | break; |
rempig | 5:9cc383153bdb | 1129 | |
rempig | 5:9cc383153bdb | 1130 | case 0x448552: |
rempig | 5:9cc383153bdb | 1131 | tianma_2p8_st7789vi_power_on(); |
rempig | 5:9cc383153bdb | 1132 | printf("Tianma1\r\n"); |
rempig | 5:9cc383153bdb | 1133 | break; |
rempig | 5:9cc383153bdb | 1134 | |
rempig | 5:9cc383153bdb | 1135 | case 0x468552: |
rempig | 5:9cc383153bdb | 1136 | tianma_2p8_st7789vi_power_on(); |
rempig | 5:9cc383153bdb | 1137 | printf("Tianma2\r\n"); |
rempig | 5:9cc383153bdb | 1138 | break; |
rempig | 5:9cc383153bdb | 1139 | |
rempig | 5:9cc383153bdb | 1140 | case 0x560000: |
rempig | 5:9cc383153bdb | 1141 | yeebo_st7789v_power_on(); |
rempig | 5:9cc383153bdb | 1142 | printf("Yeebo56\r\n"); |
rempig | 5:9cc383153bdb | 1143 | break; |
rempig | 5:9cc383153bdb | 1144 | |
rempig | 5:9cc383153bdb | 1145 | default: |
rempig | 5:9cc383153bdb | 1146 | yeebo_st7789v_power_on(); |
rempig | 5:9cc383153bdb | 1147 | printf("YeeboDefault\r\n"); |
rempig | 5:9cc383153bdb | 1148 | break; |
rempig | 5:9cc383153bdb | 1149 | } |
rempig | 5:9cc383153bdb | 1150 | printf("RDDID : "); |
rempig | 5:9cc383153bdb | 1151 | printf("0x%08x\n", RDDIDVal); |
rempig | 5:9cc383153bdb | 1152 | |
rempig | 5:9cc383153bdb | 1153 | STATEMACHINE = LCDTEST1; |
rempig | 5:9cc383153bdb | 1154 | |
rempig | 5:9cc383153bdb | 1155 | break; |
rempig | 5:9cc383153bdb | 1156 | |
rempig | 5:9cc383153bdb | 1157 | case LCDTEST1: |
rempig | 5:9cc383153bdb | 1158 | Write_Command(0x38); |
rempig | 5:9cc383153bdb | 1159 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1160 | RefreshScreen(); |
rempig | 5:9cc383153bdb | 1161 | printf("Inspect color. Press enter to continue\r\n"); |
rempig | 5:9cc383153bdb | 1162 | //while |
rempig | 5:9cc383153bdb | 1163 | |
rempig | 5:9cc383153bdb | 1164 | /* |
rempig | 5:9cc383153bdb | 1165 | while (buttonNext.read()==1) { |
rempig | 5:9cc383153bdb | 1166 | wait_ms(50); |
rempig | 5:9cc383153bdb | 1167 | } |
rempig | 5:9cc383153bdb | 1168 | SendBlack(); |
rempig | 5:9cc383153bdb | 1169 | while (buttonNext.read()==1) { |
rempig | 5:9cc383153bdb | 1170 | wait_ms(50); |
rempig | 5:9cc383153bdb | 1171 | } |
rempig | 5:9cc383153bdb | 1172 | SendWhite(); |
rempig | 5:9cc383153bdb | 1173 | while (buttonNext.read()==1) { |
rempig | 5:9cc383153bdb | 1174 | wait_ms(50); |
rempig | 5:9cc383153bdb | 1175 | } |
rempig | 5:9cc383153bdb | 1176 | */ |
rempig | 5:9cc383153bdb | 1177 | STATEMACHINE = RACASET; |
rempig | 5:9cc383153bdb | 1178 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1179 | break; |
rempig | 5:9cc383153bdb | 1180 | |
rempig | 5:9cc383153bdb | 1181 | case RACASET: |
rempig | 5:9cc383153bdb | 1182 | //CASET |
rempig | 5:9cc383153bdb | 1183 | /* |
rempig | 5:9cc383153bdb | 1184 | SendData(0x00,0x00); |
rempig | 5:9cc383153bdb | 1185 | SendData(0x00,0xAA); |
rempig | 5:9cc383153bdb | 1186 | //RASET |
rempig | 5:9cc383153bdb | 1187 | SendData(0x00,0x00); |
rempig | 5:9cc383153bdb | 1188 | SendData(0x00,0x78); |
rempig | 5:9cc383153bdb | 1189 | */ |
rempig | 5:9cc383153bdb | 1190 | STATEMACHINE = LCDTEST2; |
rempig | 5:9cc383153bdb | 1191 | // wait_ms(100); |
rempig | 5:9cc383153bdb | 1192 | break; |
rempig | 5:9cc383153bdb | 1193 | |
rempig | 5:9cc383153bdb | 1194 | case LCDTEST2: |
rempig | 5:9cc383153bdb | 1195 | /* |
rempig | 5:9cc383153bdb | 1196 | RefreshScreen(); |
rempig | 5:9cc383153bdb | 1197 | printf("Inspect color. Press enter to continue\r\n"); |
rempig | 5:9cc383153bdb | 1198 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1199 | */ |
rempig | 5:9cc383153bdb | 1200 | STATEMACHINE = WAITCONTINUE; |
rempig | 5:9cc383153bdb | 1201 | // wait_ms(100); |
rempig | 5:9cc383153bdb | 1202 | break; |
rempig | 5:9cc383153bdb | 1203 | |
rempig | 5:9cc383153bdb | 1204 | case WAITCONTINUE: |
rempig | 5:9cc383153bdb | 1205 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1206 | i2c.start(); |
rempig | 5:9cc383153bdb | 1207 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1208 | i2c.write(0x11); |
rempig | 5:9cc383153bdb | 1209 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1210 | wait_ms(50); |
rempig | 5:9cc383153bdb | 1211 | i2c.start(); |
rempig | 5:9cc383153bdb | 1212 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1213 | i2cr = i2c.read(addrsht); |
rempig | 5:9cc383153bdb | 1214 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1215 | i2crkey = i2cr; |
rempig | 5:9cc383153bdb | 1216 | // printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1217 | if (i2crkey==0x02) { |
rempig | 5:9cc383153bdb | 1218 | STATEMACHINE = TOUCHTESTINIT; |
rempig | 5:9cc383153bdb | 1219 | } |
rempig | 5:9cc383153bdb | 1220 | |
rempig | 5:9cc383153bdb | 1221 | printf("KEY : "); |
rempig | 5:9cc383153bdb | 1222 | printf("0x%02x\n", i2crkey); |
rempig | 5:9cc383153bdb | 1223 | |
rempig | 5:9cc383153bdb | 1224 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1225 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1226 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1227 | i2crkey = 0; |
rempig | 5:9cc383153bdb | 1228 | |
rempig | 5:9cc383153bdb | 1229 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1230 | |
rempig | 5:9cc383153bdb | 1231 | break; |
rempig | 5:9cc383153bdb | 1232 | |
rempig | 5:9cc383153bdb | 1233 | case TOUCHTESTINIT: |
rempig | 5:9cc383153bdb | 1234 | |
rempig | 5:9cc383153bdb | 1235 | wait_ms(2000); |
rempig | 5:9cc383153bdb | 1236 | pc.printf("Initializing touch\r\n"); |
rempig | 5:9cc383153bdb | 1237 | |
rempig | 5:9cc383153bdb | 1238 | fp = fopen("/sd/touchtest.bmp", "r"); |
rempig | 5:9cc383153bdb | 1239 | |
rempig | 5:9cc383153bdb | 1240 | if (fp == NULL) { |
rempig | 5:9cc383153bdb | 1241 | fclose(fp); |
rempig | 5:9cc383153bdb | 1242 | // remove("/sd/hello.txt"); |
rempig | 5:9cc383153bdb | 1243 | pc.printf("Error: File not found!\r\n"); |
rempig | 5:9cc383153bdb | 1244 | } |
rempig | 5:9cc383153bdb | 1245 | |
rempig | 5:9cc383153bdb | 1246 | //https://online-converting.com/image/convert2bmp/ |
rempig | 5:9cc383153bdb | 1247 | |
rempig | 5:9cc383153bdb | 1248 | int cnt = 0; |
rempig | 5:9cc383153bdb | 1249 | pc.printf("Printing image to screen\r\n"); |
rempig | 5:9cc383153bdb | 1250 | //Red --- F8 00 |
rempig | 5:9cc383153bdb | 1251 | //Green --- 07 E0 |
rempig | 5:9cc383153bdb | 1252 | //Blue --- 00 1F |
rempig | 5:9cc383153bdb | 1253 | Write_Command(0x2c); |
rempig | 5:9cc383153bdb | 1254 | |
rempig | 5:9cc383153bdb | 1255 | while (!feof(fp)) { |
rempig | 5:9cc383153bdb | 1256 | if (cnt > 65) { //skip rgb header |
rempig | 5:9cc383153bdb | 1257 | datalo = fgetc(fp); |
rempig | 5:9cc383153bdb | 1258 | datahi = fgetc(fp); |
rempig | 5:9cc383153bdb | 1259 | //printf("0x%02x\n", datalo); |
rempig | 5:9cc383153bdb | 1260 | //printf("0x%02x\n", datahi); |
rempig | 5:9cc383153bdb | 1261 | |
rempig | 5:9cc383153bdb | 1262 | if ((datalo!=0xffffffff) && (datahi!=0xffffffff)) { |
rempig | 5:9cc383153bdb | 1263 | SendData(datahi,datalo); |
rempig | 5:9cc383153bdb | 1264 | } |
rempig | 5:9cc383153bdb | 1265 | } else { |
rempig | 5:9cc383153bdb | 1266 | int datahead = fgetc(fp); |
rempig | 5:9cc383153bdb | 1267 | cnt++; |
rempig | 5:9cc383153bdb | 1268 | } |
rempig | 5:9cc383153bdb | 1269 | // pc.printf("."); |
rempig | 5:9cc383153bdb | 1270 | } |
rempig | 5:9cc383153bdb | 1271 | //pc.printf(".\r\n"); |
rempig | 5:9cc383153bdb | 1272 | pc.printf("Done printing image to screen\r\n"); |
rempig | 5:9cc383153bdb | 1273 | |
rempig | 5:9cc383153bdb | 1274 | fclose(fp); |
rempig | 5:9cc383153bdb | 1275 | |
rempig | 5:9cc383153bdb | 1276 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1277 | touch1 = false; |
rempig | 5:9cc383153bdb | 1278 | touch2 = false; |
rempig | 5:9cc383153bdb | 1279 | touch3 = false; |
rempig | 5:9cc383153bdb | 1280 | touch4 = false; |
rempig | 5:9cc383153bdb | 1281 | touch5 = false; |
rempig | 5:9cc383153bdb | 1282 | touchkey1 = false; |
rempig | 5:9cc383153bdb | 1283 | touchkey2 = false; |
rempig | 5:9cc383153bdb | 1284 | touchkey3 = false; |
rempig | 5:9cc383153bdb | 1285 | pc.printf("Touch test running\r\n"); |
rempig | 5:9cc383153bdb | 1286 | ControlLED(0x40, 0x00); |
rempig | 5:9cc383153bdb | 1287 | ControlLED(0x42, 0x00); |
rempig | 5:9cc383153bdb | 1288 | |
rempig | 5:9cc383153bdb | 1289 | STATEMACHINE = TOUCHDETECT; |
rempig | 5:9cc383153bdb | 1290 | break; |
rempig | 5:9cc383153bdb | 1291 | /* |
rempig | 5:9cc383153bdb | 1292 | case TOUCHTEST1: |
rempig | 5:9cc383153bdb | 1293 | printf("TOUCHING1\n"); |
rempig | 5:9cc383153bdb | 1294 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1295 | i2c.start(); |
rempig | 5:9cc383153bdb | 1296 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1297 | i2c.write(0x00); |
rempig | 5:9cc383153bdb | 1298 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1299 | //wait_ms(50); |
rempig | 5:9cc383153bdb | 1300 | i2c.start(); |
rempig | 5:9cc383153bdb | 1301 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1302 | i2cr = i2c.read(addrsht); |
rempig | 5:9cc383153bdb | 1303 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1304 | |
rempig | 5:9cc383153bdb | 1305 | printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1306 | printf("0x%02x\n", i2cr); |
rempig | 5:9cc383153bdb | 1307 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1308 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1309 | |
rempig | 5:9cc383153bdb | 1310 | STATEMACHINE = TOUCHTEST2; |
rempig | 5:9cc383153bdb | 1311 | break; |
rempig | 5:9cc383153bdb | 1312 | |
rempig | 5:9cc383153bdb | 1313 | case TOUCHTEST2: |
rempig | 5:9cc383153bdb | 1314 | printf("TOUCHING2\n"); |
rempig | 5:9cc383153bdb | 1315 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1316 | i2c.start(); |
rempig | 5:9cc383153bdb | 1317 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1318 | i2c.write(0x01); |
rempig | 5:9cc383153bdb | 1319 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1320 | //wait_ms(50); |
rempig | 5:9cc383153bdb | 1321 | i2c.start(); |
rempig | 5:9cc383153bdb | 1322 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1323 | i2cr = i2c.read(addrsht); |
rempig | 5:9cc383153bdb | 1324 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1325 | |
rempig | 5:9cc383153bdb | 1326 | printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1327 | printf("0x%02x\n", i2cr); |
rempig | 5:9cc383153bdb | 1328 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1329 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1330 | |
rempig | 5:9cc383153bdb | 1331 | STATEMACHINE = TOUCHTEST3; |
rempig | 5:9cc383153bdb | 1332 | break; |
rempig | 5:9cc383153bdb | 1333 | |
rempig | 5:9cc383153bdb | 1334 | case TOUCHTEST3: |
rempig | 5:9cc383153bdb | 1335 | printf("TOUCHING3\n"); |
rempig | 5:9cc383153bdb | 1336 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1337 | i2c.start(); |
rempig | 5:9cc383153bdb | 1338 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1339 | i2c.write(0x04); |
rempig | 5:9cc383153bdb | 1340 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1341 | //wait_ms(50); |
rempig | 5:9cc383153bdb | 1342 | i2c.start(); |
rempig | 5:9cc383153bdb | 1343 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1344 | i2cr = i2c.read(addrsht); |
rempig | 5:9cc383153bdb | 1345 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1346 | |
rempig | 5:9cc383153bdb | 1347 | printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1348 | printf("0x%02x\n", i2cr); |
rempig | 5:9cc383153bdb | 1349 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1350 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1351 | |
rempig | 5:9cc383153bdb | 1352 | STATEMACHINE = TOUCHTEST4; |
rempig | 5:9cc383153bdb | 1353 | break; |
rempig | 5:9cc383153bdb | 1354 | |
rempig | 5:9cc383153bdb | 1355 | case TOUCHTEST4: |
rempig | 5:9cc383153bdb | 1356 | printf("TOUCHING4\n"); |
rempig | 5:9cc383153bdb | 1357 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1358 | i2c.start(); |
rempig | 5:9cc383153bdb | 1359 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1360 | i2c.write(0x05); |
rempig | 5:9cc383153bdb | 1361 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1362 | //wait_ms(50); |
rempig | 5:9cc383153bdb | 1363 | i2c.start(); |
rempig | 5:9cc383153bdb | 1364 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1365 | i2cr = i2c.read(addrsht); |
rempig | 5:9cc383153bdb | 1366 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1367 | |
rempig | 5:9cc383153bdb | 1368 | printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1369 | printf("0x%02x\n", i2cr); |
rempig | 5:9cc383153bdb | 1370 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1371 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1372 | |
rempig | 5:9cc383153bdb | 1373 | STATEMACHINE = TOUCHTEST5; |
rempig | 5:9cc383153bdb | 1374 | break; |
rempig | 5:9cc383153bdb | 1375 | */ |
rempig | 5:9cc383153bdb | 1376 | case TOUCHDETECT: |
rempig | 5:9cc383153bdb | 1377 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1378 | i2c.start(); |
rempig | 5:9cc383153bdb | 1379 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1380 | i2c.write(0x01); |
rempig | 5:9cc383153bdb | 1381 | i2c.write(0x1D); |
rempig | 5:9cc383153bdb | 1382 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1383 | wait_ms(50); |
rempig | 5:9cc383153bdb | 1384 | i2c.start(); |
rempig | 5:9cc383153bdb | 1385 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1386 | i2cr = i2c.read(addrsht); |
rempig | 5:9cc383153bdb | 1387 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1388 | i2crkey = (i2cr >> 2) & 0x01; |
rempig | 5:9cc383153bdb | 1389 | // int i2crkeytemp = i2cr; |
rempig | 5:9cc383153bdb | 1390 | // printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1391 | // printf("INT : "); |
rempig | 5:9cc383153bdb | 1392 | // printf("0x%02x\n", i2crkey); |
rempig | 5:9cc383153bdb | 1393 | |
rempig | 5:9cc383153bdb | 1394 | // printf("INTTEMP : "); |
rempig | 5:9cc383153bdb | 1395 | // printf("0x%02x\n", i2crkeytemp); |
rempig | 5:9cc383153bdb | 1396 | if (i2crkey == 0x00) { |
rempig | 5:9cc383153bdb | 1397 | STATEMACHINE = TOUCHTEST5; |
rempig | 5:9cc383153bdb | 1398 | } |
rempig | 5:9cc383153bdb | 1399 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1400 | i2crkey = 0; |
rempig | 5:9cc383153bdb | 1401 | |
rempig | 5:9cc383153bdb | 1402 | // wait_ms(100); |
rempig | 5:9cc383153bdb | 1403 | |
rempig | 5:9cc383153bdb | 1404 | break; |
rempig | 5:9cc383153bdb | 1405 | |
rempig | 5:9cc383153bdb | 1406 | case TOUCHTEST5: |
rempig | 5:9cc383153bdb | 1407 | // printf("TOUCHING5\n"); |
rempig | 5:9cc383153bdb | 1408 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1409 | i2c.start(); |
rempig | 5:9cc383153bdb | 1410 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1411 | i2c.write(0x11); |
rempig | 5:9cc383153bdb | 1412 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1413 | wait_ms(50); |
rempig | 5:9cc383153bdb | 1414 | i2c.start(); |
rempig | 5:9cc383153bdb | 1415 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1416 | i2cr = i2c.read(addrsht); |
rempig | 5:9cc383153bdb | 1417 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1418 | i2crkey = i2cr; |
rempig | 5:9cc383153bdb | 1419 | // printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1420 | printf("KEY : "); |
rempig | 5:9cc383153bdb | 1421 | printf("0x%02x\n", i2crkey); |
rempig | 5:9cc383153bdb | 1422 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1423 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1424 | |
rempig | 5:9cc383153bdb | 1425 | //STATEMACHINE = SDTEST1; |
rempig | 5:9cc383153bdb | 1426 | STATEMACHINE = TOUCHTEST6; |
rempig | 5:9cc383153bdb | 1427 | |
rempig | 5:9cc383153bdb | 1428 | break; |
rempig | 5:9cc383153bdb | 1429 | |
rempig | 5:9cc383153bdb | 1430 | case TOUCHTEST6: |
rempig | 5:9cc383153bdb | 1431 | // printf("TOUCHING6\n"); |
rempig | 5:9cc383153bdb | 1432 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1433 | i2c.start(); |
rempig | 5:9cc383153bdb | 1434 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1435 | i2c.write(0x12); |
rempig | 5:9cc383153bdb | 1436 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1437 | wait_ms(50); |
rempig | 5:9cc383153bdb | 1438 | i2c.start(); |
rempig | 5:9cc383153bdb | 1439 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1440 | i2cr = i2c.read(addrsht); |
rempig | 5:9cc383153bdb | 1441 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1442 | // printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1443 | // printf("0x%02x\n", i2cr); |
rempig | 5:9cc383153bdb | 1444 | |
rempig | 5:9cc383153bdb | 1445 | i2crxhi = (i2cr & 0x70) >> 4; // we want to check bits 0, 3 and 8 |
rempig | 5:9cc383153bdb | 1446 | // printf("0x%02x\n", i2crxhi); |
rempig | 5:9cc383153bdb | 1447 | |
rempig | 5:9cc383153bdb | 1448 | i2cryhi = (i2cr & 0x07); // we want to check bits 0, 3 and 8 |
rempig | 5:9cc383153bdb | 1449 | // printf("0x%02x\n", i2cryhi); |
rempig | 5:9cc383153bdb | 1450 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1451 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1452 | |
rempig | 5:9cc383153bdb | 1453 | STATEMACHINE = TOUCHTEST7; |
rempig | 5:9cc383153bdb | 1454 | break; |
rempig | 5:9cc383153bdb | 1455 | |
rempig | 5:9cc383153bdb | 1456 | case TOUCHTEST7: |
rempig | 5:9cc383153bdb | 1457 | // printf("TOUCHING7\n"); |
rempig | 5:9cc383153bdb | 1458 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1459 | i2c.start(); |
rempig | 5:9cc383153bdb | 1460 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1461 | i2c.write(0x13); |
rempig | 5:9cc383153bdb | 1462 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1463 | wait_ms(50); |
rempig | 5:9cc383153bdb | 1464 | i2c.start(); |
rempig | 5:9cc383153bdb | 1465 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1466 | i2cr = i2c.read(addrsht); |
rempig | 5:9cc383153bdb | 1467 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1468 | |
rempig | 5:9cc383153bdb | 1469 | // printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1470 | // printf("0x%02x\n", i2cr); |
rempig | 5:9cc383153bdb | 1471 | |
rempig | 5:9cc383153bdb | 1472 | i2crxlo = i2cr; |
rempig | 5:9cc383153bdb | 1473 | // printf("0x%02x\n", i2crxlo); |
rempig | 5:9cc383153bdb | 1474 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1475 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1476 | |
rempig | 5:9cc383153bdb | 1477 | STATEMACHINE = TOUCHTEST8; |
rempig | 5:9cc383153bdb | 1478 | |
rempig | 5:9cc383153bdb | 1479 | break; |
rempig | 5:9cc383153bdb | 1480 | |
rempig | 5:9cc383153bdb | 1481 | case TOUCHTEST8: |
rempig | 5:9cc383153bdb | 1482 | //printf("TOUCHING8\n"); |
rempig | 5:9cc383153bdb | 1483 | |
rempig | 5:9cc383153bdb | 1484 | addrsht = (addr2 << 1) | 0x01; //control bit = 1 |
rempig | 5:9cc383153bdb | 1485 | i2c.start(); |
rempig | 5:9cc383153bdb | 1486 | i2c.write((addr2 << 1)); |
rempig | 5:9cc383153bdb | 1487 | i2c.write(0x14); |
rempig | 5:9cc383153bdb | 1488 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1489 | wait_ms(50); |
rempig | 5:9cc383153bdb | 1490 | i2c.start(); |
rempig | 5:9cc383153bdb | 1491 | i2c.write(addrsht); |
rempig | 5:9cc383153bdb | 1492 | i2cr = i2c.read(addrsht); |
rempig | 5:9cc383153bdb | 1493 | i2c.stop(); |
rempig | 5:9cc383153bdb | 1494 | |
rempig | 5:9cc383153bdb | 1495 | // printf("0x%02x\n", addrsht); |
rempig | 5:9cc383153bdb | 1496 | // printf("0x%02x\n", i2cr); |
rempig | 5:9cc383153bdb | 1497 | |
rempig | 5:9cc383153bdb | 1498 | i2crylo = i2cr; |
rempig | 5:9cc383153bdb | 1499 | // printf("0x%02x\n", i2crylo); |
rempig | 5:9cc383153bdb | 1500 | |
rempig | 5:9cc383153bdb | 1501 | printf("Deciphered Values\r\n"); |
rempig | 5:9cc383153bdb | 1502 | |
rempig | 5:9cc383153bdb | 1503 | i2crx = (i2crxhi << 8) | i2crxlo; |
rempig | 5:9cc383153bdb | 1504 | i2cry = (i2cryhi << 8) | i2crylo; |
rempig | 5:9cc383153bdb | 1505 | |
rempig | 5:9cc383153bdb | 1506 | printf("X : "); |
rempig | 5:9cc383153bdb | 1507 | printf("%d\r\n", i2crx); |
rempig | 5:9cc383153bdb | 1508 | printf("Y : "); |
rempig | 5:9cc383153bdb | 1509 | printf("%d\r\n", i2cry); |
rempig | 5:9cc383153bdb | 1510 | |
rempig | 5:9cc383153bdb | 1511 | /* |
rempig | 5:9cc383153bdb | 1512 | bool touch1 = false; |
rempig | 5:9cc383153bdb | 1513 | bool touch2 = false; |
rempig | 5:9cc383153bdb | 1514 | bool touch3 = false; |
rempig | 5:9cc383153bdb | 1515 | bool touch4 = false; |
rempig | 5:9cc383153bdb | 1516 | bool touch5 = false; |
rempig | 5:9cc383153bdb | 1517 | bool touchkey1 = false; |
rempig | 5:9cc383153bdb | 1518 | bool touchkey2 = false; |
rempig | 5:9cc383153bdb | 1519 | bool touchkey3 = false; |
rempig | 5:9cc383153bdb | 1520 | */ |
rempig | 5:9cc383153bdb | 1521 | |
rempig | 5:9cc383153bdb | 1522 | bool feedBack1 = ((i2crx>=0) && (i2crx <= 79) && (i2cry>=0) && (i2cry <= 59)); |
rempig | 5:9cc383153bdb | 1523 | bool feedBack2 = ((i2crx>=239) && (i2crx <= 319) && (i2cry>=0) && (i2cry <= 59)); |
rempig | 5:9cc383153bdb | 1524 | bool feedBack3 = ((i2crx>=0) && (i2crx <= 79) && (i2cry>=179) && (i2cry <= 239)); |
rempig | 5:9cc383153bdb | 1525 | bool feedBack4 = ((i2crx>=239) && (i2crx <= 319) && (i2cry>=179) && (i2cry <= 239)); |
rempig | 5:9cc383153bdb | 1526 | bool feedBack5 = ((i2crx>=79) && (i2crx <= 159) && (i2cry>=59) && (i2cry <= 119)); |
rempig | 5:9cc383153bdb | 1527 | bool feedBackkey1 = (i2crkey == 0x02); |
rempig | 5:9cc383153bdb | 1528 | bool feedBackkey2 = (i2crkey == 0x04); |
rempig | 5:9cc383153bdb | 1529 | bool feedBackkey3 = (i2crkey == 0x08); |
rempig | 5:9cc383153bdb | 1530 | |
rempig | 5:9cc383153bdb | 1531 | if (feedBack1 || feedBack2 || feedBack3 || feedBack4 || feedBack5 || feedBackkey1 || feedBackkey2 || feedBackkey3) { |
rempig | 5:9cc383153bdb | 1532 | FeedbackTouch(true); |
rempig | 5:9cc383153bdb | 1533 | } else { |
rempig | 5:9cc383153bdb | 1534 | FeedbackTouch(false); |
rempig | 5:9cc383153bdb | 1535 | } |
rempig | 5:9cc383153bdb | 1536 | |
rempig | 5:9cc383153bdb | 1537 | if (feedBack1) { |
rempig | 5:9cc383153bdb | 1538 | touch1 = true; |
rempig | 5:9cc383153bdb | 1539 | printf("X : "); |
rempig | 5:9cc383153bdb | 1540 | printf("%d\r\n", i2crx); |
rempig | 5:9cc383153bdb | 1541 | printf("Y : "); |
rempig | 5:9cc383153bdb | 1542 | printf("%d\r\n", i2cry); |
rempig | 5:9cc383153bdb | 1543 | printf("touch1 pressed\r\n"); |
rempig | 5:9cc383153bdb | 1544 | } |
rempig | 5:9cc383153bdb | 1545 | |
rempig | 5:9cc383153bdb | 1546 | if (feedBack2) { |
rempig | 5:9cc383153bdb | 1547 | touch2 = true; |
rempig | 5:9cc383153bdb | 1548 | printf("touch2 pressed\r\n"); |
rempig | 5:9cc383153bdb | 1549 | |
rempig | 5:9cc383153bdb | 1550 | } |
rempig | 5:9cc383153bdb | 1551 | if (feedBack3) { |
rempig | 5:9cc383153bdb | 1552 | touch3 = true; |
rempig | 5:9cc383153bdb | 1553 | printf("touch3 pressed\r\n"); |
rempig | 5:9cc383153bdb | 1554 | |
rempig | 5:9cc383153bdb | 1555 | } |
rempig | 5:9cc383153bdb | 1556 | if (feedBack4) { |
rempig | 5:9cc383153bdb | 1557 | touch4 = true; |
rempig | 5:9cc383153bdb | 1558 | printf("touch4 pressed\r\n"); |
rempig | 5:9cc383153bdb | 1559 | |
rempig | 5:9cc383153bdb | 1560 | } |
rempig | 5:9cc383153bdb | 1561 | |
rempig | 5:9cc383153bdb | 1562 | if (feedBack5) { |
rempig | 5:9cc383153bdb | 1563 | touch5 = true; |
rempig | 5:9cc383153bdb | 1564 | printf("touch5 pressed\r\n"); |
rempig | 5:9cc383153bdb | 1565 | |
rempig | 5:9cc383153bdb | 1566 | } |
rempig | 5:9cc383153bdb | 1567 | |
rempig | 5:9cc383153bdb | 1568 | if (feedBackkey1) { |
rempig | 5:9cc383153bdb | 1569 | touchkey1=true; |
rempig | 5:9cc383153bdb | 1570 | printf("touchkey1 pressed\r\n"); |
rempig | 5:9cc383153bdb | 1571 | } |
rempig | 5:9cc383153bdb | 1572 | |
rempig | 5:9cc383153bdb | 1573 | if (feedBackkey2) { |
rempig | 5:9cc383153bdb | 1574 | touchkey2=true; |
rempig | 5:9cc383153bdb | 1575 | printf("touchkey2 pressed\r\n"); |
rempig | 5:9cc383153bdb | 1576 | |
rempig | 5:9cc383153bdb | 1577 | } |
rempig | 5:9cc383153bdb | 1578 | |
rempig | 5:9cc383153bdb | 1579 | if (feedBackkey3) { |
rempig | 5:9cc383153bdb | 1580 | touchkey3=true; |
rempig | 5:9cc383153bdb | 1581 | printf("touchkey3 pressed\r\n"); |
rempig | 5:9cc383153bdb | 1582 | |
rempig | 5:9cc383153bdb | 1583 | } |
rempig | 5:9cc383153bdb | 1584 | |
rempig | 5:9cc383153bdb | 1585 | // touchresult = touch1 & touch2 & touch3 & touch4 & touch5 & touchkey1 & touchkey2 & touchkey3; |
rempig | 5:9cc383153bdb | 1586 | /* |
rempig | 5:9cc383153bdb | 1587 | if (touchresult) { |
rempig | 5:9cc383153bdb | 1588 | printf("touchresult : "); |
rempig | 5:9cc383153bdb | 1589 | printf("%s\r\n", touchresult ? "true" : "false"); |
rempig | 5:9cc383153bdb | 1590 | STATEMACHINE = GOODDONE; |
rempig | 5:9cc383153bdb | 1591 | printf("Done Test\r\n"); |
rempig | 5:9cc383153bdb | 1592 | } else { |
rempig | 5:9cc383153bdb | 1593 | wait_ms(100); |
rempig | 5:9cc383153bdb | 1594 | printf("touchresult : "); |
rempig | 5:9cc383153bdb | 1595 | printf("%s\r\n", touchresult ? "true" : "false"); |
rempig | 5:9cc383153bdb | 1596 | printf("touch1 : "); |
rempig | 5:9cc383153bdb | 1597 | printf("%s\r\n", touch1 ? "true" : "false"); |
rempig | 5:9cc383153bdb | 1598 | printf("touch2 : "); |
rempig | 5:9cc383153bdb | 1599 | printf("%s\r\n", touch2 ? "true" : "false"); |
rempig | 5:9cc383153bdb | 1600 | printf("touch3 : "); |
rempig | 5:9cc383153bdb | 1601 | printf("%s\r\n", touch3 ? "true" : "false"); |
rempig | 5:9cc383153bdb | 1602 | printf("touch4 : "); |
rempig | 5:9cc383153bdb | 1603 | printf("%s\r\n", touch4 ? "true" : "false"); |
rempig | 5:9cc383153bdb | 1604 | printf("touch5 : "); |
rempig | 5:9cc383153bdb | 1605 | printf("%s\r\n", touch5 ? "true" : "false"); |
rempig | 5:9cc383153bdb | 1606 | printf("touchkey1 : "); |
rempig | 5:9cc383153bdb | 1607 | printf("%s\r\n", touchkey1 ? "true" : "false"); |
rempig | 5:9cc383153bdb | 1608 | printf("touchkey2 : "); |
rempig | 5:9cc383153bdb | 1609 | printf("%s\r\n", touchkey2 ? "true" : "false"); |
rempig | 5:9cc383153bdb | 1610 | printf("touchkey3 : "); |
rempig | 5:9cc383153bdb | 1611 | printf("%s\r\n", touchkey3 ? "true" : "false"); |
rempig | 5:9cc383153bdb | 1612 | |
rempig | 5:9cc383153bdb | 1613 | STATEMACHINE = TOUCHDETECT; |
rempig | 5:9cc383153bdb | 1614 | } |
rempig | 5:9cc383153bdb | 1615 | */ |
rempig | 5:9cc383153bdb | 1616 | i2cr = 0; |
rempig | 5:9cc383153bdb | 1617 | i2crkey = 0; |
rempig | 5:9cc383153bdb | 1618 | |
rempig | 5:9cc383153bdb | 1619 | |
rempig | 5:9cc383153bdb | 1620 | break; |
rempig | 5:9cc383153bdb | 1621 | |
rempig | 5:9cc383153bdb | 1622 | case GOODDONE: |
rempig | 5:9cc383153bdb | 1623 | RefreshScreenGood(); |
rempig | 5:9cc383153bdb | 1624 | STATEMACHINE = DONESTATE; |
rempig | 5:9cc383153bdb | 1625 | break; |
rempig | 5:9cc383153bdb | 1626 | |
rempig | 5:9cc383153bdb | 1627 | case DONESTATE: |
rempig | 5:9cc383153bdb | 1628 | break; |
rempig | 5:9cc383153bdb | 1629 | |
rempig | 5:9cc383153bdb | 1630 | |
rempig | 5:9cc383153bdb | 1631 | default: |
rempig | 5:9cc383153bdb | 1632 | |
rempig | 5:9cc383153bdb | 1633 | break; |
rempig | 5:9cc383153bdb | 1634 | } |
rempig | 5:9cc383153bdb | 1635 | } //end while |
rempig | 5:9cc383153bdb | 1636 | } |