diff --git a/examples/ili9341/basic/atsamd21.go b/examples/ili9341/basic/atsamd21.go deleted file mode 100644 index 9b007b6..0000000 --- a/examples/ili9341/basic/atsamd21.go +++ /dev/null @@ -1,30 +0,0 @@ -//go:build atsamd21 -// +build atsamd21 - -package main - -import ( - "machine" - - "tinygo.org/x/drivers/ili9341" -) - -var ( - display = ili9341.NewSPI( - machine.SPI0, - machine.D0, - machine.D1, - machine.D2, - ) - - backlight = machine.D3 -) - -func init() { - machine.SPI0.Configure(machine.SPIConfig{ - SCK: machine.SPI0_SCK_PIN, - SDO: machine.SPI0_SDO_PIN, - SDI: machine.SPI0_SDI_PIN, - Frequency: 24000000, - }) -} diff --git a/examples/ili9341/basic/main.go b/examples/ili9341/basic/main.go index 51e2be7..30b9855 100644 --- a/examples/ili9341/basic/main.go +++ b/examples/ili9341/basic/main.go @@ -2,9 +2,9 @@ package main import ( "image/color" - "machine" "time" + "tinygo.org/x/drivers/examples/ili9341/initdisplay" "tinygo.org/x/drivers/ili9341" ) @@ -16,16 +16,15 @@ var ( green = color.RGBA{0, 255, 0, 255} ) +var ( + display *ili9341.Device +) + func main() { + display = initdisplay.InitDisplay() - backlight.Configure(machine.PinConfig{machine.PinOutput}) - - display.Configure(ili9341.Config{}) width, height := display.Size() - display.FillScreen(black) - backlight.High() - display.FillRectangle(0, 0, width/2, height/2, white) display.FillRectangle(width/2, 0, width/2, height/2, red) display.FillRectangle(0, height/2, width/2, height/2, green) diff --git a/examples/ili9341/basic/pyportal.go b/examples/ili9341/basic/pyportal.go deleted file mode 100644 index 11f1d55..0000000 --- a/examples/ili9341/basic/pyportal.go +++ /dev/null @@ -1,23 +0,0 @@ -//go:build pyportal -// +build pyportal - -package main - -import ( - "machine" - - "tinygo.org/x/drivers/ili9341" -) - -var ( - display = ili9341.NewParallel( - machine.LCD_DATA0, - machine.TFT_WR, - machine.TFT_DC, - machine.TFT_CS, - machine.TFT_RESET, - machine.TFT_RD, - ) - - backlight = machine.TFT_BACKLIGHT -) diff --git a/examples/ili9341/basic/wioterminal.go b/examples/ili9341/basic/wioterminal.go deleted file mode 100644 index 8f31c7b..0000000 --- a/examples/ili9341/basic/wioterminal.go +++ /dev/null @@ -1,30 +0,0 @@ -//go:build wioterminal -// +build wioterminal - -package main - -import ( - "machine" - - "tinygo.org/x/drivers/ili9341" -) - -var ( - display = ili9341.NewSPI( - machine.SPI3, - machine.LCD_DC, - machine.LCD_SS_PIN, - machine.LCD_RESET, - ) - - backlight = machine.LCD_BACKLIGHT -) - -func init() { - machine.SPI3.Configure(machine.SPIConfig{ - SCK: machine.LCD_SCK_PIN, - SDO: machine.LCD_SDO_PIN, - SDI: machine.LCD_SDI_PIN, - Frequency: 40000000, - }) -} diff --git a/examples/ili9341/initdisplay/atsamd21.go b/examples/ili9341/initdisplay/atsamd21.go new file mode 100644 index 0000000..a400788 --- /dev/null +++ b/examples/ili9341/initdisplay/atsamd21.go @@ -0,0 +1,41 @@ +//go:build atsamd21 +// +build atsamd21 + +package initdisplay + +import ( + "machine" + + "tinygo.org/x/drivers/ili9341" +) + +var () + +func InitDisplay() *ili9341.Device { + machine.SPI0.Configure(machine.SPIConfig{ + SCK: machine.SPI0_SCK_PIN, + SDO: machine.SPI0_SDO_PIN, + SDI: machine.SPI0_SDI_PIN, + Frequency: 24000000, + }) + + // configure backlight + backlight := machine.D3 + backlight.Configure(machine.PinConfig{machine.PinOutput}) + + display := ili9341.NewSPI( + machine.SPI0, + machine.D0, + machine.D1, + machine.D2, + ) + + // configure display + display.Configure(ili9341.Config{}) + + backlight.High() + + display.SetRotation(ili9341.Rotation270) + + return display +} diff --git a/examples/ili9341/initdisplay/pyportal.go b/examples/ili9341/initdisplay/pyportal.go new file mode 100644 index 0000000..dd6199f --- /dev/null +++ b/examples/ili9341/initdisplay/pyportal.go @@ -0,0 +1,34 @@ +//go:build pyportal +// +build pyportal + +package initdisplay + +import ( + "machine" + + "tinygo.org/x/drivers/ili9341" +) + +func InitDisplay() *ili9341.Device { + display := ili9341.NewParallel( + machine.LCD_DATA0, + machine.TFT_WR, + machine.TFT_DC, + machine.TFT_CS, + machine.TFT_RESET, + machine.TFT_RD, + ) + + // configure backlight + backlight := machine.TFT_BACKLIGHT + backlight.Configure(machine.PinConfig{machine.PinOutput}) + + // configure display + display.Configure(ili9341.Config{}) + + backlight.High() + + display.SetRotation(ili9341.Rotation270) + + return display +} diff --git a/examples/ili9341/scroll/wioterminal.go b/examples/ili9341/initdisplay/wioterminal.go similarity index 51% rename from examples/ili9341/scroll/wioterminal.go rename to examples/ili9341/initdisplay/wioterminal.go index 8f31c7b..80e187f 100644 --- a/examples/ili9341/scroll/wioterminal.go +++ b/examples/ili9341/initdisplay/wioterminal.go @@ -1,7 +1,7 @@ //go:build wioterminal // +build wioterminal -package main +package initdisplay import ( "machine" @@ -9,22 +9,31 @@ import ( "tinygo.org/x/drivers/ili9341" ) -var ( - display = ili9341.NewSPI( - machine.SPI3, - machine.LCD_DC, - machine.LCD_SS_PIN, - machine.LCD_RESET, - ) - - backlight = machine.LCD_BACKLIGHT -) - -func init() { +func InitDisplay() *ili9341.Device { machine.SPI3.Configure(machine.SPIConfig{ SCK: machine.LCD_SCK_PIN, SDO: machine.LCD_SDO_PIN, SDI: machine.LCD_SDI_PIN, Frequency: 40000000, }) + + // configure backlight + backlight := machine.LCD_BACKLIGHT + backlight.Configure(machine.PinConfig{machine.PinOutput}) + + display := ili9341.NewSPI( + machine.SPI3, + machine.LCD_DC, + machine.LCD_SS_PIN, + machine.LCD_RESET, + ) + + // configure display + display.Configure(ili9341.Config{}) + + backlight.High() + + display.SetRotation(ili9341.Rotation270) + + return display } diff --git a/examples/ili9341/pyportal_boing/main.go b/examples/ili9341/pyportal_boing/main.go index 6a7747e..16b285b 100644 --- a/examples/ili9341/pyportal_boing/main.go +++ b/examples/ili9341/pyportal_boing/main.go @@ -3,9 +3,9 @@ package main import ( - "machine" "time" + "tinygo.org/x/drivers/examples/ili9341/initdisplay" "tinygo.org/x/drivers/examples/ili9341/pyportal_boing/graphics" "tinygo.org/x/drivers/ili9341" ) @@ -44,20 +44,17 @@ var ( palette [16]uint16 ) +var ( + display *ili9341.Device +) + func main() { + display = initdisplay.InitDisplay() - // configure backlight - backlight.Configure(machine.PinConfig{machine.PinOutput}) - - // configure display - display.Configure(ili9341.Config{}) print("width, height == ") width, height := display.Size() println(width, height) - backlight.High() - - display.SetRotation(ili9341.Rotation270) DrawBackground() startTime = time.Now().UnixNano() diff --git a/examples/ili9341/pyportal_boing/pyportal.go b/examples/ili9341/pyportal_boing/pyportal.go deleted file mode 100644 index 11f1d55..0000000 --- a/examples/ili9341/pyportal_boing/pyportal.go +++ /dev/null @@ -1,23 +0,0 @@ -//go:build pyportal -// +build pyportal - -package main - -import ( - "machine" - - "tinygo.org/x/drivers/ili9341" -) - -var ( - display = ili9341.NewParallel( - machine.LCD_DATA0, - machine.TFT_WR, - machine.TFT_DC, - machine.TFT_CS, - machine.TFT_RESET, - machine.TFT_RD, - ) - - backlight = machine.TFT_BACKLIGHT -) diff --git a/examples/ili9341/pyportal_boing/wioterminal.go b/examples/ili9341/pyportal_boing/wioterminal.go deleted file mode 100644 index 8f31c7b..0000000 --- a/examples/ili9341/pyportal_boing/wioterminal.go +++ /dev/null @@ -1,30 +0,0 @@ -//go:build wioterminal -// +build wioterminal - -package main - -import ( - "machine" - - "tinygo.org/x/drivers/ili9341" -) - -var ( - display = ili9341.NewSPI( - machine.SPI3, - machine.LCD_DC, - machine.LCD_SS_PIN, - machine.LCD_RESET, - ) - - backlight = machine.LCD_BACKLIGHT -) - -func init() { - machine.SPI3.Configure(machine.SPIConfig{ - SCK: machine.LCD_SCK_PIN, - SDO: machine.LCD_SDO_PIN, - SDI: machine.LCD_SDI_PIN, - Frequency: 40000000, - }) -} diff --git a/examples/ili9341/scroll/atsamd21.go b/examples/ili9341/scroll/atsamd21.go deleted file mode 100644 index 9b007b6..0000000 --- a/examples/ili9341/scroll/atsamd21.go +++ /dev/null @@ -1,30 +0,0 @@ -//go:build atsamd21 -// +build atsamd21 - -package main - -import ( - "machine" - - "tinygo.org/x/drivers/ili9341" -) - -var ( - display = ili9341.NewSPI( - machine.SPI0, - machine.D0, - machine.D1, - machine.D2, - ) - - backlight = machine.D3 -) - -func init() { - machine.SPI0.Configure(machine.SPIConfig{ - SCK: machine.SPI0_SCK_PIN, - SDO: machine.SPI0_SDO_PIN, - SDI: machine.SPI0_SDI_PIN, - Frequency: 24000000, - }) -} diff --git a/examples/ili9341/scroll/main.go b/examples/ili9341/scroll/main.go index 3d74fc5..80282d9 100644 --- a/examples/ili9341/scroll/main.go +++ b/examples/ili9341/scroll/main.go @@ -2,9 +2,9 @@ package main import ( "image/color" - "machine" "time" + "tinygo.org/x/drivers/examples/ili9341/initdisplay" "tinygo.org/x/drivers/ili9341" ) @@ -16,16 +16,15 @@ var ( white = color.RGBA{255, 255, 255, 255} ) +var ( + display *ili9341.Device +) + func main() { + display := initdisplay.InitDisplay() - backlight.Configure(machine.PinConfig{machine.PinOutput}) - - display.Configure(ili9341.Config{}) width, height := display.Size() - display.FillScreen(black) - backlight.High() - display.FillRectangle(0, 0, width/2, height/2, white) display.FillRectangle(width/2, 0, width/2, height/2, red) display.FillRectangle(0, height/2, width/2, height/2, green) diff --git a/examples/ili9341/scroll/pyportal.go b/examples/ili9341/scroll/pyportal.go deleted file mode 100644 index 11f1d55..0000000 --- a/examples/ili9341/scroll/pyportal.go +++ /dev/null @@ -1,23 +0,0 @@ -//go:build pyportal -// +build pyportal - -package main - -import ( - "machine" - - "tinygo.org/x/drivers/ili9341" -) - -var ( - display = ili9341.NewParallel( - machine.LCD_DATA0, - machine.TFT_WR, - machine.TFT_DC, - machine.TFT_CS, - machine.TFT_RESET, - machine.TFT_RD, - ) - - backlight = machine.TFT_BACKLIGHT -) diff --git a/examples/ili9341/slideshow/atsamd21.go b/examples/ili9341/slideshow/atsamd21.go deleted file mode 100644 index 9b007b6..0000000 --- a/examples/ili9341/slideshow/atsamd21.go +++ /dev/null @@ -1,30 +0,0 @@ -//go:build atsamd21 -// +build atsamd21 - -package main - -import ( - "machine" - - "tinygo.org/x/drivers/ili9341" -) - -var ( - display = ili9341.NewSPI( - machine.SPI0, - machine.D0, - machine.D1, - machine.D2, - ) - - backlight = machine.D3 -) - -func init() { - machine.SPI0.Configure(machine.SPIConfig{ - SCK: machine.SPI0_SCK_PIN, - SDO: machine.SPI0_SDO_PIN, - SDI: machine.SPI0_SDI_PIN, - Frequency: 24000000, - }) -} diff --git a/examples/ili9341/slideshow/main.go b/examples/ili9341/slideshow/main.go index 038d247..e98df00 100644 --- a/examples/ili9341/slideshow/main.go +++ b/examples/ili9341/slideshow/main.go @@ -3,10 +3,10 @@ package main import ( "fmt" "image/color" - "machine" "strings" "time" + "tinygo.org/x/drivers/examples/ili9341/initdisplay" "tinygo.org/x/drivers/ili9341" "tinygo.org/x/drivers/image/jpeg" "tinygo.org/x/drivers/image/png" @@ -20,6 +20,10 @@ var ( green = color.RGBA{0, 255, 0, 255} ) +var ( + display *ili9341.Device +) + func main() { err := run() for err != nil { @@ -28,9 +32,7 @@ func main() { } func run() error { - backlight.Configure(machine.PinConfig{machine.PinOutput}) - - display.Configure(ili9341.Config{}) + display = initdisplay.InitDisplay() width, height := display.Size() if width < 320 || height < 240 { @@ -38,7 +40,6 @@ func run() error { } display.FillScreen(black) - backlight.High() for { err := drawJpeg(display) diff --git a/examples/ili9341/slideshow/pyportal.go b/examples/ili9341/slideshow/pyportal.go deleted file mode 100644 index 11f1d55..0000000 --- a/examples/ili9341/slideshow/pyportal.go +++ /dev/null @@ -1,23 +0,0 @@ -//go:build pyportal -// +build pyportal - -package main - -import ( - "machine" - - "tinygo.org/x/drivers/ili9341" -) - -var ( - display = ili9341.NewParallel( - machine.LCD_DATA0, - machine.TFT_WR, - machine.TFT_DC, - machine.TFT_CS, - machine.TFT_RESET, - machine.TFT_RD, - ) - - backlight = machine.TFT_BACKLIGHT -) diff --git a/examples/ili9341/slideshow/wioterminal.go b/examples/ili9341/slideshow/wioterminal.go deleted file mode 100644 index 8f31c7b..0000000 --- a/examples/ili9341/slideshow/wioterminal.go +++ /dev/null @@ -1,30 +0,0 @@ -//go:build wioterminal -// +build wioterminal - -package main - -import ( - "machine" - - "tinygo.org/x/drivers/ili9341" -) - -var ( - display = ili9341.NewSPI( - machine.SPI3, - machine.LCD_DC, - machine.LCD_SS_PIN, - machine.LCD_RESET, - ) - - backlight = machine.LCD_BACKLIGHT -) - -func init() { - machine.SPI3.Configure(machine.SPIConfig{ - SCK: machine.LCD_SCK_PIN, - SDO: machine.LCD_SDO_PIN, - SDI: machine.LCD_SDI_PIN, - Frequency: 40000000, - }) -}