Skip to content

Commit 3636d0c

Browse files
committed
tests/drivers/{st77xx,ili9341}: fix coordinates in lcd_fill()
The lcd_fill() argument x2 (y2) must be less than dev.params->lines (dev.params->rgb_channels) to not draw to invalid LCD coordinates.
1 parent cd8bb88 commit 3636d0c

File tree

2 files changed

+18
-10
lines changed

2 files changed

+18
-10
lines changed

tests/drivers/ili9341/main.c

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,22 +53,24 @@ int main(void)
5353
}
5454

5555
puts("lcd TFT display filling map");
56-
lcd_fill(&dev, 0, dev.params->lines, 0, dev.params->rgb_channels, 0x0000);
56+
lcd_fill(&dev, 0, dev.params->lines - 1, 0, dev.params->rgb_channels - 1,
57+
0x0000);
5758
puts("lcd TFT display map filled");
5859

5960
/* Fill square with blue */
6061
puts("Drawing blue rectangle");
61-
lcd_fill(&dev, 0, dev.params->lines / 3, 0, dev.params->rgb_channels, 0x001F);
62+
lcd_fill(&dev, 0, dev.params->lines / 3, 0, dev.params->rgb_channels - 1,
63+
0x001F);
6264
ztimer_sleep(ZTIMER_MSEC, 1 * MS_PER_SEC);
6365

6466
puts("Drawing green rectangle");
6567
lcd_fill(&dev, dev.params->lines / 3, 2 * (dev.params->lines / 3), 0,
66-
dev.params->rgb_channels, 0x07E0);
68+
dev.params->rgb_channels - 1, 0x07E0);
6769
ztimer_sleep(ZTIMER_MSEC, 1 * MS_PER_SEC);
6870

6971
puts("Drawing red rectangle");
7072
lcd_fill(&dev, 2 * (dev.params->lines / 3), dev.params->lines, 0,
71-
dev.params->rgb_channels, 0xf800);
73+
dev.params->rgb_channels - 1, 0xf800);
7274
ztimer_sleep(ZTIMER_MSEC, 1 * MS_PER_SEC);
7375

7476
lcd_invert_on(&dev);
@@ -78,7 +80,8 @@ int main(void)
7880
puts("lcd TFT display normal");
7981

8082
puts("lcd TFT display clear screen");
81-
lcd_fill(&dev, 0, dev.params->lines, 0, dev.params->rgb_channels, 0x0000);
83+
lcd_fill(&dev, 0, dev.params->lines - 1, 0, dev.params->rgb_channels - 1,
84+
0x0000);
8285
#ifndef CONFIG_NO_RIOT_IMAGE
8386
/* Approximate middle of the display */
8487
uint8_t x1 = (dev.params->lines / 2) - (RIOT_LOGO_WIDTH / 2);

tests/drivers/st77xx/main.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,22 +69,24 @@ int main(void)
6969
#endif
7070

7171
puts("lcd TFT display filling map");
72-
lcd_fill(&dev, 0, dev.params->lines, 0, dev.params->rgb_channels, 0x0000);
72+
lcd_fill(&dev, 0, dev.params->lines - 1, 0, dev.params->rgb_channels - 1,
73+
0x0000);
7374
puts("lcd TFT display map filled");
7475

7576
/* Fill square with blue */
7677
puts("Drawing blue rectangle");
77-
lcd_fill(&dev, 0, dev.params->lines / 3, 0, dev.params->rgb_channels, 0x001F);
78+
lcd_fill(&dev, 0, dev.params->lines / 3, 0, dev.params->rgb_channels - 1,
79+
0x001F);
7880
ztimer_sleep(ZTIMER_MSEC, 1 * MS_PER_SEC);
7981

8082
puts("Drawing green rectangle");
8183
lcd_fill(&dev, dev.params->lines / 3, 2 * (dev.params->lines / 3), 0,
82-
dev.params->rgb_channels, 0x07E0);
84+
dev.params->rgb_channels - 1, 0x07E0);
8385
ztimer_sleep(ZTIMER_MSEC, 1 * MS_PER_SEC);
8486

8587
puts("Drawing red rectangle");
8688
lcd_fill(&dev, 2 * (dev.params->lines / 3), dev.params->lines, 0,
87-
dev.params->rgb_channels, 0xf800);
89+
dev.params->rgb_channels - 1, 0xf800);
8890
ztimer_sleep(ZTIMER_MSEC, 1 * MS_PER_SEC);
8991

9092
lcd_invert_on(&dev);
@@ -95,7 +97,10 @@ int main(void)
9597

9698
puts("lcd TFT display clear screen with benchmarking");
9799
BENCHMARK_FUNC("fill", 1,
98-
lcd_fill(&dev, 0, dev.params->lines, 0, dev.params->rgb_channels, 0x0000));
100+
lcd_fill(&dev,
101+
0, dev.params->lines - 1,
102+
0, dev.params->rgb_channels - 1,
103+
0x0000));
99104

100105
#ifndef CONFIG_NO_RIOT_IMAGE
101106
printf("Write pixmap of size %u x %u with benchmarking\n",

0 commit comments

Comments
 (0)