Skip to content

Commit 875765c

Browse files
committed
tweak for ATOM Display.
1 parent db740d2 commit 875765c

File tree

4 files changed

+13549
-13435
lines changed

4 files changed

+13549
-13435
lines changed

docs/ATOMDisplay.md

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@
55

66

77
### Notes.
8-
8+
- The HDMI output resolution is fixed at 1280x720 60Hz.
99
- If the image does not appear, reinsert the USB cable and wait a few seconds.
10+
- Audio output function is not included.
1011
- When inserting or removing the USB cable, please hold the ATOM itself. Repeatedly inserting and removing the USB cable while holding the docking base side may cause stress on the pin headers and result in poor contact.
1112

1213
### 注意事項
13-
- 画像が表示されない場合はUSBケーブルを挿しなおして数秒待ちます。
14+
- HDMIの出力解像度は 1280x720 60Hz 固定です。
15+
- 音声出力機能は含まれません。
16+
- 画像が表示されない場合はUSBケーブルを挿し直し、数秒待機してください。
1417
- USBケーブルを挿抜する際はATOM本体を保持してください。ドッキングベース側を保持した状態でUSB挿抜を行うと、ピンヘッダに応力が掛かり接触不良を引き起こす可能性があります。
1518

1619

@@ -19,15 +22,17 @@ Sample Code:
1922
#include <M5AtomDisplay.h>
2023
2124
// Create an instance of M5AtomDisplay
25+
// Set the resolution in the argument (width, height). default : 1280, 720.
2226
// M5AtomDisplay のインスタンスを用意
27+
// 引数で解像度(幅,高さ)を設定できます。 省略時は 1280, 720
2328
2429
M5AtomDisplay display ( 640, 360 );
2530
26-
// Set the resolution in the argument. ( default : 1280, 720 )
27-
// 引数で解像度を設定できます。 省略時は 1280, 720
28-
29-
// By lowering the resolution, you can enlarge the image.
31+
// ※ By lowering the resolution, you can enlarge the image.
32+
// If the resolution after enlargement is less than 1280x720
33+
// , there will be a gap around the periphery.
3034
// ※ 解像度を下げることで、拡大表示することができます。
35+
// 拡大後の解像度が1280x720に満たない場合は外周に隙間が生じます。
3136
// width scale:
3237
// ~ 1280 = x1
3338
// ~ 640 = x2
@@ -72,6 +77,13 @@ void setup(void)
7277
}
7378
}
7479
display.endWrite();
80+
81+
for (int i = 0; i < 16; ++i)
82+
{
83+
int x = rand() % display.width();
84+
int y = rand() % display.height();
85+
display.drawCircle(x, y, 16, rand());
86+
}
7587
}
7688
7789
void loop(void)

examples/Basic/TouchTest/TouchTest.ino

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,4 @@ void loop(void)
7070
display.display();
7171
}
7272
vTaskDelay(1);
73-
}
73+
}

src/lgfx/v1/panel/Panel_M5HDMI.cpp

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ namespace lgfx
427427
ESP_LOGI(TAG, "Reading FPGA ID... ");
428428

429429
cs_control(false);
430-
_bus->writeData(0x01, 8); // READ_ID
430+
_bus->writeData(CMD_READ_ID, 8); // READ_ID
431431
_bus->beginRead();
432432
uint32_t data;
433433
do {
@@ -485,19 +485,19 @@ namespace lgfx
485485
if (_need_delay)
486486
{
487487
auto us = lgfx::micros() - _last_us;
488-
if (us < _need_delay)
488+
if (_need_delay > us)
489489
{
490490
us = _need_delay - us;
491-
if (us > 8)
492-
{
493-
delayMicroseconds(us - 8);
494-
}
495-
_bus->beginRead();
496-
while (_bus->readData(8) == 0x00);
497-
cs_control(true);
498-
_bus->endRead();
499-
cs_control(false);
491+
delayMicroseconds(us);
492+
}
493+
_bus->beginRead();
494+
while (_bus->readData(8) == 0x00)
495+
{
496+
delayMicroseconds(1);
500497
}
498+
cs_control(true);
499+
_bus->endRead();
500+
cs_control(false);
501501
_need_delay = 0;
502502
}
503503
return false;
@@ -597,15 +597,11 @@ namespace lgfx
597597
}
598598
_check_repeat();
599599
_bus->writeBytes(((uint8_t*)buf)+3, bytes, false, false);
600-
if (rect)
600+
if (w > 7 || h > 1)
601601
{
602-
--w;
603602
uint32_t us = ((21 + (w >> 4) * 36 + (w & 15)) * h) >> 5;
604-
if (us)
605-
{
606-
_need_delay = us;
607-
_last_us = lgfx::micros();
608-
}
603+
_need_delay = 1 + us;
604+
_last_us = lgfx::micros();
609605
}
610606
}
611607

@@ -706,7 +702,6 @@ namespace lgfx
706702
uint_fast16_t ye = _ye;
707703
uint_fast16_t x = _xpos;
708704
uint_fast16_t y = _ypos;
709-
const size_t bits = _write_bits;
710705
auto bytes = (_write_bits >> 3);
711706
uint32_t cmd = CMD_WRITE_RAW + bytes;
712707

0 commit comments

Comments
 (0)