mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-22 07:29:01 +00:00
examples: update lora/lorawan common setup to use sx127x RadioControl
Signed-off-by: deadprogram <ron@hybridgroup.com>
This commit is contained in:
@@ -30,28 +30,16 @@ var (
|
|||||||
// do sx127x setup here
|
// do sx127x setup here
|
||||||
func SetupLora() (lora.Radio, error) {
|
func SetupLora() (lora.Radio, error) {
|
||||||
rstPin.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
rstPin.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
||||||
csPin.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
|
||||||
dio0Pin.Configure(machine.PinConfig{Mode: machine.PinInputPullup})
|
|
||||||
dio1Pin.Configure(machine.PinConfig{Mode: machine.PinInputPullup})
|
|
||||||
spi.Configure(machine.SPIConfig{Frequency: 500000, Mode: 0})
|
spi.Configure(machine.SPIConfig{Frequency: 500000, Mode: 0})
|
||||||
|
|
||||||
loraRadio = sx127x.New(spi, csPin, rstPin)
|
loraRadio = sx127x.New(spi, rstPin)
|
||||||
|
loraRadio.SetRadioController(sx127x.NewRadioControl(csPin, dio0Pin, dio1Pin))
|
||||||
loraRadio.Reset()
|
loraRadio.Reset()
|
||||||
|
|
||||||
if state := loraRadio.DetectDevice(); !state {
|
if state := loraRadio.DetectDevice(); !state {
|
||||||
return nil, errRadioNotFound
|
return nil, errRadioNotFound
|
||||||
}
|
}
|
||||||
|
|
||||||
// Setup DIO0 interrupt Handling
|
|
||||||
if err := dio0Pin.SetInterrupt(machine.PinRising, dioIrqHandler); err != nil {
|
|
||||||
println("could not configure DIO0 pin interrupt:", err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Setup DIO1 interrupt Handling
|
|
||||||
if err := dio1Pin.SetInterrupt(machine.PinRising, dioIrqHandler); err != nil {
|
|
||||||
println("could not configure DIO1 pin interrupt:", err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
// Prepare for Lora Operation
|
// Prepare for Lora Operation
|
||||||
loraConf := lora.Config{
|
loraConf := lora.Config{
|
||||||
Freq: FREQ,
|
Freq: FREQ,
|
||||||
@@ -71,10 +59,6 @@ func SetupLora() (lora.Radio, error) {
|
|||||||
return loraRadio, nil
|
return loraRadio, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func dioIrqHandler(machine.Pin) {
|
|
||||||
loraRadio.HandleInterrupt()
|
|
||||||
}
|
|
||||||
|
|
||||||
func FirmwareVersion() string {
|
func FirmwareVersion() string {
|
||||||
v := loraRadio.GetVersion()
|
v := loraRadio.GetVersion()
|
||||||
return "sx127x v" + strconv.Itoa(int(v))
|
return "sx127x v" + strconv.Itoa(int(v))
|
||||||
|
|||||||
Reference in New Issue
Block a user