Skip to content

Commit 1fac33f

Browse files
committed
ssd1306: refactor tests -- show fps and heap usage
1 parent dda29b1 commit 1fac33f

File tree

5 files changed

+64
-119
lines changed

5 files changed

+64
-119
lines changed

examples/ssd1306/common/common.go

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package common
2+
3+
import (
4+
"runtime"
5+
6+
"image/color"
7+
"time"
8+
9+
"tinygo.org/x/drivers/ssd1306"
10+
)
11+
12+
var ms = runtime.MemStats{}
13+
14+
func Loop(display ssd1306.Device) {
15+
display.ClearDisplay()
16+
w, h := display.Size()
17+
x := int16(0)
18+
y := int16(0)
19+
deltaX := int16(1)
20+
deltaY := int16(1)
21+
trace := time.Now().UnixMilli() + 1000
22+
frames := 0
23+
for {
24+
pixel := display.GetPixel(x, y)
25+
c := color.RGBA{255, 255, 255, 255}
26+
if pixel {
27+
c = color.RGBA{0, 0, 0, 255}
28+
}
29+
display.SetPixel(x, y, c)
30+
display.Display()
31+
32+
x += deltaX
33+
y += deltaY
34+
35+
if x == 0 || x == w-1 {
36+
deltaX = -deltaX
37+
}
38+
39+
if y == 0 || y == h-1 {
40+
deltaY = -deltaY
41+
}
42+
43+
frames++
44+
now := time.Now().UnixMilli()
45+
if now >= trace {
46+
runtime.ReadMemStats(&ms)
47+
println("TS", now, "| FPS", frames, "| HeapInuse", ms.HeapInuse)
48+
trace = now + 1000
49+
frames = 0
50+
}
51+
}
52+
}

examples/ssd1306/i2c_128x32/main.go

Lines changed: 5 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ package main
33
import (
44
"machine"
55

6-
"image/color"
7-
"time"
8-
6+
"tinygo.org/x/drivers/examples/ssd1306/common"
97
"tinygo.org/x/drivers/ssd1306"
108
)
119

1210
func main() {
1311
machine.I2C0.Configure(machine.I2CConfig{
14-
Frequency: machine.TWI_FREQ_400KHZ,
12+
Frequency: 400 * machine.KHz,
13+
SDA: machine.SDA0_PIN,
14+
SCL: machine.SCL0_PIN,
1515
})
1616

1717
display := ssd1306.NewI2C(machine.I2C0)
@@ -21,31 +21,5 @@ func main() {
2121
Height: 32,
2222
})
2323

24-
display.ClearDisplay()
25-
26-
x := int16(0)
27-
y := int16(0)
28-
deltaX := int16(1)
29-
deltaY := int16(1)
30-
for {
31-
pixel := display.GetPixel(x, y)
32-
c := color.RGBA{255, 255, 255, 255}
33-
if pixel {
34-
c = color.RGBA{0, 0, 0, 255}
35-
}
36-
display.SetPixel(x, y, c)
37-
display.Display()
38-
39-
x += deltaX
40-
y += deltaY
41-
42-
if x == 0 || x == 127 {
43-
deltaX = -deltaX
44-
}
45-
46-
if y == 0 || y == 31 {
47-
deltaY = -deltaY
48-
}
49-
time.Sleep(1 * time.Millisecond)
50-
}
24+
common.Loop(display)
5125
}

examples/ssd1306/i2c_128x64/main.go

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,14 @@ package main
1212
import (
1313
"machine"
1414

15-
"image/color"
16-
"time"
15+
"tinygo.org/x/drivers/examples/ssd1306/common"
1716

1817
"tinygo.org/x/drivers/ssd1306"
1918
)
2019

2120
func main() {
2221
machine.I2C0.Configure(machine.I2CConfig{
23-
Frequency: machine.TWI_FREQ_400KHZ,
22+
Frequency: 400 * machine.KHz,
2423
})
2524

2625
display := ssd1306.NewI2C(machine.I2C0)
@@ -30,31 +29,5 @@ func main() {
3029
Height: 64,
3130
})
3231

33-
display.ClearDisplay()
34-
35-
x := int16(0)
36-
y := int16(0)
37-
deltaX := int16(1)
38-
deltaY := int16(1)
39-
for {
40-
pixel := display.GetPixel(x, y)
41-
c := color.RGBA{255, 255, 255, 255}
42-
if pixel {
43-
c = color.RGBA{0, 0, 0, 255}
44-
}
45-
display.SetPixel(x, y, c)
46-
display.Display()
47-
48-
x += deltaX
49-
y += deltaY
50-
51-
if x == 0 || x == 127 {
52-
deltaX = -deltaX
53-
}
54-
55-
if y == 0 || y == 63 {
56-
deltaY = -deltaY
57-
}
58-
time.Sleep(1 * time.Millisecond)
59-
}
32+
common.Loop(display)
6033
}

examples/ssd1306/spi_128x64/main.go

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package main
22

33
import (
4-
"image/color"
54
"machine"
6-
"time"
75

6+
"tinygo.org/x/drivers/examples/ssd1306/common"
87
"tinygo.org/x/drivers/ssd1306"
98
)
109

@@ -18,31 +17,5 @@ func main() {
1817
Height: 64,
1918
})
2019

21-
display.ClearDisplay()
22-
23-
x := int16(64)
24-
y := int16(32)
25-
deltaX := int16(1)
26-
deltaY := int16(1)
27-
for {
28-
pixel := display.GetPixel(x, y)
29-
c := color.RGBA{255, 255, 255, 255}
30-
if pixel {
31-
c = color.RGBA{0, 0, 0, 255}
32-
}
33-
display.SetPixel(x, y, c)
34-
display.Display()
35-
36-
x += deltaX
37-
y += deltaY
38-
39-
if x == 0 || x == 127 {
40-
deltaX = -deltaX
41-
}
42-
43-
if y == 0 || y == 63 {
44-
deltaY = -deltaY
45-
}
46-
time.Sleep(1 * time.Millisecond)
47-
}
20+
common.Loop(display)
4821
}

examples/ssd1306/spi_thumby/main.go

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
package main
44

55
import (
6-
"image/color"
76
"machine"
8-
"time"
97

8+
"tinygo.org/x/drivers/examples/ssd1306/common"
109
"tinygo.org/x/drivers/ssd1306"
1110
)
1211

@@ -20,31 +19,5 @@ func main() {
2019
ResetPage: ssd1306.ResetValue{0, 5},
2120
})
2221

23-
display.ClearDisplay()
24-
25-
x := int16(36)
26-
y := int16(20)
27-
deltaX := int16(1)
28-
deltaY := int16(1)
29-
for {
30-
pixel := display.GetPixel(x, y)
31-
c := color.RGBA{255, 255, 255, 255}
32-
if pixel {
33-
c = color.RGBA{0, 0, 0, 255}
34-
}
35-
display.SetPixel(x, y, c)
36-
display.Display()
37-
38-
x += deltaX
39-
y += deltaY
40-
41-
if x == 0 || x == 71 {
42-
deltaX = -deltaX
43-
}
44-
45-
if y == 0 || y == 39 {
46-
deltaY = -deltaY
47-
}
48-
time.Sleep(1 * time.Millisecond)
49-
}
22+
common.Loop(display)
5023
}

0 commit comments

Comments
 (0)