Files
Tim Boldt b1ae52d1b9 Add Waveshare 4.2in B/W e-paper driver (#183)
* waveshare-epd/epd4in2: Add Waveshare 4.2in e-paper driver
2020-08-25 18:57:13 +02:00

57 lines
1.0 KiB
Go

package main
import (
"machine"
"image/color"
"time"
"tinygo.org/x/drivers/waveshare-epd/epd4in2"
)
var display epd4in2.Device
func main() {
machine.SPI0.Configure(machine.SPIConfig{
Frequency: 8000000,
Mode: 0,
})
display = epd4in2.New(machine.SPI0, machine.P6, machine.P7, machine.P8, machine.P9)
display.Configure(epd4in2.Config{})
black := color.RGBA{1, 1, 1, 255}
display.ClearBuffer()
println("Clear the display")
display.ClearDisplay()
display.WaitUntilIdle()
println("Waiting for 2 seconds")
time.Sleep(2 * time.Second)
// Show a checkered board
for i := int16(0); i < 16; i++ {
for j := int16(0); j < 25; j++ {
if (i+j)%2 == 0 {
showRect(i*8, j*10, 8, 10, black)
}
}
}
println("Show checkered board")
display.Display()
display.WaitUntilIdle()
println("Waiting for 2 seconds")
time.Sleep(2 * time.Second)
println("You could remove power now")
}
func showRect(x int16, y int16, w int16, h int16, c color.RGBA) {
for i := x; i < x+w; i++ {
for j := y; j < y+h; j++ {
display.SetPixel(i, j, c)
}
}
}