mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
3d279d4d25
Also remove redundant byte() casts from SetScanLimit()
137 lines
2.1 KiB
Go
137 lines
2.1 KiB
Go
package main
|
|
|
|
import (
|
|
"machine"
|
|
"time"
|
|
|
|
"tinygo.org/x/drivers/max72xx"
|
|
)
|
|
|
|
// example for a 4 digit 7 segment display
|
|
func main() {
|
|
// Pins for Arduino Nano 33 IOT
|
|
err := machine.SPI0.Configure(machine.SPIConfig{
|
|
SDO: machine.D11, // default SDO pin
|
|
SCK: machine.D13, // default sck pin
|
|
LSBFirst: false,
|
|
Frequency: 10000000,
|
|
})
|
|
|
|
if err != nil {
|
|
println(err.Error())
|
|
}
|
|
|
|
driver := max72xx.NewDevice(machine.SPI0, machine.D6)
|
|
driver.Configure()
|
|
|
|
digitNumber := 4
|
|
|
|
driver.StopDisplayTest()
|
|
driver.SetDecodeMode(4)
|
|
driver.SetScanLimit(4)
|
|
driver.SetIntensity(8)
|
|
driver.StopShutdownMode()
|
|
|
|
for i := 1; i < int(digitNumber); i++ {
|
|
driver.WriteCommand(byte(i), byte(Blank))
|
|
}
|
|
|
|
for {
|
|
for _, character := range characters {
|
|
println("writing", "characterValue:", character.String())
|
|
driver.WriteCommand(byte(4), byte(character))
|
|
driver.WriteCommand(byte(3), byte(character))
|
|
driver.WriteCommand(byte(2), byte(character))
|
|
driver.WriteCommand(byte(1), byte(character))
|
|
time.Sleep(500 * time.Millisecond)
|
|
|
|
}
|
|
time.Sleep(time.Second)
|
|
}
|
|
|
|
}
|
|
|
|
var characters = []Character{
|
|
Zero,
|
|
One,
|
|
Two,
|
|
Three,
|
|
Four,
|
|
Five,
|
|
Six,
|
|
Seven,
|
|
Eight,
|
|
Nine,
|
|
Dash,
|
|
E,
|
|
H,
|
|
L,
|
|
P,
|
|
Blank,
|
|
Dot,
|
|
}
|
|
|
|
// Each bit translates to a pin, which is driven high or low
|
|
type Character byte
|
|
|
|
func (char Character) String() string {
|
|
switch char {
|
|
case Zero:
|
|
return "0"
|
|
case One:
|
|
return "1"
|
|
case Two:
|
|
return "2"
|
|
case Three:
|
|
return "3"
|
|
case Four:
|
|
return "4"
|
|
case Five:
|
|
return "5"
|
|
case Six:
|
|
return "6"
|
|
case Seven:
|
|
return "7"
|
|
case Eight:
|
|
return "8"
|
|
case Nine:
|
|
return "9"
|
|
case Dash:
|
|
return "-"
|
|
case E:
|
|
return "E"
|
|
case H:
|
|
return "H"
|
|
case L:
|
|
return "L"
|
|
case P:
|
|
return "P"
|
|
case Blank:
|
|
return ""
|
|
case Dot:
|
|
return "."
|
|
}
|
|
|
|
return ""
|
|
}
|
|
|
|
const (
|
|
Zero Character = 0 //126
|
|
One Character = 1 //48
|
|
Two Character = 2 // 109
|
|
Three Character = 3 // 121
|
|
Four Character = 4
|
|
Five Character = 5
|
|
Six Character = 6
|
|
Seven Character = 7
|
|
Eight Character = 8
|
|
Nine Character = 9
|
|
Dash Character = 10
|
|
E Character = 11
|
|
H Character = 12
|
|
L Character = 13
|
|
P Character = 14
|
|
Blank Character = 15
|
|
Dot Character = 128
|
|
)
|