mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-04 11:07:46 +00:00
machine/samd21: basic implementation for DAC (#1183)
* machine/samd21: basic DAC implementation Signed-off-by: Ron Evans <ron@hybridgroup.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
// Simplistic example using the DAC on the Circuit Playground Express.
|
||||
//
|
||||
// To actually use the DAC for producing complex waveforms or samples requires a DMA
|
||||
// timer-based playback mechanism which is beyond the scope of this example.
|
||||
package main
|
||||
|
||||
import (
|
||||
"machine"
|
||||
"time"
|
||||
)
|
||||
|
||||
func main() {
|
||||
enable := machine.PA30
|
||||
enable.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
||||
enable.Set(true)
|
||||
|
||||
speaker := machine.A0
|
||||
speaker.Configure(machine.PinConfig{Mode: machine.PinOutput})
|
||||
|
||||
machine.DAC0.Configure(machine.DACConfig{})
|
||||
|
||||
data := []uint16{32768, 8192, 2048, 512, 0}
|
||||
|
||||
for {
|
||||
for _, val := range data {
|
||||
play(val)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func play(val uint16) {
|
||||
for i := 0; i < 100; i++ {
|
||||
machine.DAC0.Set(val)
|
||||
time.Sleep(2 * time.Millisecond)
|
||||
|
||||
machine.DAC0.Set(0)
|
||||
time.Sleep(2 * time.Millisecond)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user