mess around with m5stickc
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"image/color"
|
||||
"machine"
|
||||
"time"
|
||||
|
||||
"tinygo.org/x/drivers/axp192"
|
||||
"tinygo.org/x/drivers/st7735"
|
||||
)
|
||||
|
||||
func main() {
|
||||
i2c := machine.I2C0
|
||||
|
||||
i2c.Configure(machine.I2CConfig{
|
||||
Frequency: 100e3,
|
||||
SCL: machine.GPIO22,
|
||||
SDA: machine.GPIO21,
|
||||
})
|
||||
|
||||
axp := axp192.New(i2c)
|
||||
axp.SetLDOEnable(2, true)
|
||||
|
||||
machine.SPI2.Configure(machine.SPIConfig{
|
||||
Frequency: 27000000,
|
||||
SCK: machine.GPIO13,
|
||||
SDO: machine.GPIO15,
|
||||
})
|
||||
time.Sleep(time.Second)
|
||||
display := st7735.New(
|
||||
machine.SPI2,
|
||||
machine.GPIO18,
|
||||
machine.GPIO23,
|
||||
machine.GPIO5,
|
||||
machine.NoPin,
|
||||
)
|
||||
display.Configure(st7735.Config{
|
||||
Model: st7735.MINI80x160,
|
||||
Width: 80,
|
||||
Height: 160,
|
||||
// ColumnOffset: 26,
|
||||
// RowOffset: 1,
|
||||
Rotation: st7735.ROTATION_270,
|
||||
})
|
||||
|
||||
red := color.RGBA{255, 0, 0, 255}
|
||||
blue := color.RGBA{0, 0, 255, 255}
|
||||
black := color.RGBA{0, 0, 0, 255}
|
||||
|
||||
display.FillScreen(black)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
display.FillScreen(red)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
display.FillScreen(black)
|
||||
|
||||
led := machine.GPIO10
|
||||
led.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
||||
led.Set(true)
|
||||
|
||||
buttonA := machine.GPIO37
|
||||
buttonA.Configure(machine.PinConfig{Mode: machine.PinInput})
|
||||
|
||||
buttonB := machine.GPIO39
|
||||
buttonB.Configure(machine.PinConfig{Mode: machine.PinInput})
|
||||
|
||||
for {
|
||||
// display.FillScreen(red)
|
||||
// time.Sleep(500 * time.Millisecond)
|
||||
// display.FillScreen(black)
|
||||
// time.Sleep(500 * time.Millisecond)
|
||||
|
||||
valueA := buttonA.Get()
|
||||
valueB := buttonB.Get()
|
||||
|
||||
if !valueA {
|
||||
display.FillRectangle(0, 0, 80, 80, red)
|
||||
} else {
|
||||
display.FillRectangle(0, 0, 80, 80, black)
|
||||
}
|
||||
|
||||
if !valueB {
|
||||
display.FillRectangle(80, 0, 80, 80, blue)
|
||||
} else {
|
||||
display.FillRectangle(80, 0, 80, 80, black)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user