|
@@ -153,6 +153,20 @@ void DWIN_Frame_Clear(const uint16_t color) {
|
153
|
153
|
DWIN_Send(i);
|
154
|
154
|
}
|
155
|
155
|
|
|
156
|
+// Draw a point
|
|
157
|
+// width: point width 0x01-0x0F
|
|
158
|
+// height: point height 0x01-0x0F
|
|
159
|
+// x,y: upper left point
|
|
160
|
+void DWIN_Draw_Point(uint8_t width, uint8_t height, uint16_t x, uint16_t y) {
|
|
161
|
+ size_t i = 0;
|
|
162
|
+ DWIN_Byte(i, 0x02);
|
|
163
|
+ DWIN_Byte(i, width);
|
|
164
|
+ DWIN_Byte(i, height);
|
|
165
|
+ DWIN_Word(i, x);
|
|
166
|
+ DWIN_Word(i, y);
|
|
167
|
+ DWIN_Send(i);
|
|
168
|
+}
|
|
169
|
+
|
156
|
170
|
// Draw a line
|
157
|
171
|
// color: Line segment color
|
158
|
172
|
// xStart/yStart: Start point
|
|
@@ -221,6 +235,10 @@ void DWIN_Draw_String(bool widthAdjust, bool bShow, uint8_t size,
|
221
|
235
|
uint16_t color, uint16_t bColor, uint16_t x, uint16_t y, char *string) {
|
222
|
236
|
size_t i = 0;
|
223
|
237
|
DWIN_Byte(i, 0x11);
|
|
238
|
+ // Bit 7: widthAdjust
|
|
239
|
+ // Bit 6: bShow
|
|
240
|
+ // Bit 5-4: Unused (0)
|
|
241
|
+ // Bit 3-0: size
|
224
|
242
|
DWIN_Byte(i, (widthAdjust * 0x80) | (bShow * 0x40) | size);
|
225
|
243
|
DWIN_Word(i, color);
|
226
|
244
|
DWIN_Word(i, bColor);
|
|
@@ -244,6 +262,11 @@ void DWIN_Draw_IntValue(uint8_t bShow, bool zeroFill, uint8_t zeroMode, uint8_t
|
244
|
262
|
uint16_t bColor, uint8_t iNum, uint16_t x, uint16_t y, uint16_t value) {
|
245
|
263
|
size_t i = 0;
|
246
|
264
|
DWIN_Byte(i, 0x14);
|
|
265
|
+ // Bit 7: bshow
|
|
266
|
+ // Bit 6: 1 = signed; 0 = unsigned number;
|
|
267
|
+ // Bit 5: zeroFill
|
|
268
|
+ // Bit 4: zeroMode
|
|
269
|
+ // Bit 3-0: size
|
247
|
270
|
DWIN_Byte(i, (bShow * 0x80) | (zeroFill * 0x20) | (zeroMode * 0x10) | size);
|
248
|
271
|
DWIN_Word(i, color);
|
249
|
272
|
DWIN_Word(i, bColor);
|
|
@@ -360,4 +383,73 @@ void DWIN_Frame_AreaCopy(uint8_t cacheID, uint16_t xStart, uint16_t yStart,
|
360
|
383
|
DWIN_Send(i);
|
361
|
384
|
}
|
362
|
385
|
|
|
386
|
+// Animate a series of icons
|
|
387
|
+// animID: Animation ID; 0x00-0x0F
|
|
388
|
+// animate: true on; false off;
|
|
389
|
+// libID: Icon library ID
|
|
390
|
+// picIDs: Icon starting ID
|
|
391
|
+// picIDe: Icon ending ID
|
|
392
|
+// x/y: Upper-left point
|
|
393
|
+// interval: Display time interval, unit 10mS
|
|
394
|
+void DWIN_ICON_Animation(uint8_t animID, bool animate, uint8_t libID, uint8_t picIDs, uint8_t picIDe, uint16_t x, uint16_t y, uint16_t interval) {
|
|
395
|
+ NOMORE(x, DWIN_WIDTH - 1);
|
|
396
|
+ NOMORE(y, DWIN_HEIGHT - 1); // -- ozy -- srl
|
|
397
|
+ size_t i = 0;
|
|
398
|
+ DWIN_Byte(i, 0x28);
|
|
399
|
+ DWIN_Word(i, x);
|
|
400
|
+ DWIN_Word(i, y);
|
|
401
|
+ // Bit 7: animation on or off
|
|
402
|
+ // Bit 6: start from begin or end
|
|
403
|
+ // Bit 5-4: unused (0)
|
|
404
|
+ // Bit 3-0: animID
|
|
405
|
+ DWIN_Byte(i, (animate * 0x80) | 0x40 | animID);
|
|
406
|
+ DWIN_Byte(i, libID);
|
|
407
|
+ DWIN_Byte(i, picIDs);
|
|
408
|
+ DWIN_Byte(i, picIDe);
|
|
409
|
+ DWIN_Byte(i, interval);
|
|
410
|
+ DWIN_Send(i);
|
|
411
|
+}
|
|
412
|
+
|
|
413
|
+// Animation Control
|
|
414
|
+// state: 16 bits, each bit is the state of an animation id
|
|
415
|
+void DWIN_ICON_AnimationControl(uint16_t state) {
|
|
416
|
+ size_t i = 0;
|
|
417
|
+ DWIN_Byte(i, 0x28);
|
|
418
|
+ DWIN_Word(i, state);
|
|
419
|
+ DWIN_Send(i);
|
|
420
|
+}
|
|
421
|
+
|
|
422
|
+/*---------------------------------------- Memory functions ----------------------------------------*/
|
|
423
|
+// The LCD has an additional 32KB SRAM and 16KB Flash
|
|
424
|
+
|
|
425
|
+// Data can be written to the sram and save to one of the jpeg page files
|
|
426
|
+
|
|
427
|
+// Write Data Memory
|
|
428
|
+// command 0x31
|
|
429
|
+// Type: Write memory selection; 0x5A=SRAM; 0xA5=Flash
|
|
430
|
+// Address: Write data memory address; 0x000-0x7FFF for SRAM; 0x000-0x3FFF for Flash
|
|
431
|
+// Data: data
|
|
432
|
+//
|
|
433
|
+// Flash writing returns 0xA5 0x4F 0x4B
|
|
434
|
+
|
|
435
|
+// Read Data Memory
|
|
436
|
+// command 0x32
|
|
437
|
+// Type: Read memory selection; 0x5A=SRAM; 0xA5=Flash
|
|
438
|
+// Address: Read data memory address; 0x000-0x7FFF for SRAM; 0x000-0x3FFF for Flash
|
|
439
|
+// Length: leangth of data to read; 0x01-0xF0
|
|
440
|
+//
|
|
441
|
+// Response:
|
|
442
|
+// Type, Address, Length, Data
|
|
443
|
+
|
|
444
|
+// Write Picture Memory
|
|
445
|
+// Write the contents of the 32KB SRAM data memory into the designated image memory space
|
|
446
|
+// Issued: 0x5A, 0xA5, PIC_ID
|
|
447
|
+// Response: 0xA5 0x4F 0x4B
|
|
448
|
+//
|
|
449
|
+// command 0x33
|
|
450
|
+// 0x5A, 0xA5
|
|
451
|
+// PicId: Picture Memory location, 0x00-0x0F
|
|
452
|
+//
|
|
453
|
+// Flash writing returns 0xA5 0x4F 0x4B
|
|
454
|
+
|
363
|
455
|
#endif // DWIN_CREALITY_LCD
|