mirror of
https://github.com/kidoman/embd
synced 2025-07-03 11:57:38 +02:00
spi: finishing touches
This commit is contained in:
parent
0f23150374
commit
67d316851a
7 changed files with 49 additions and 45 deletions
|
@ -3,11 +3,10 @@ package mcp3008
|
|||
import (
|
||||
"github.com/golang/glog"
|
||||
"github.com/kidoman/embd"
|
||||
|
||||
_ "github.com/kidoman/embd/host/all"
|
||||
)
|
||||
|
||||
type mcp3008 struct {
|
||||
// MCP3008 represents a mcp3008 8bit DAC
|
||||
type MCP3008 struct {
|
||||
mode byte
|
||||
|
||||
bus embd.SPIBus
|
||||
|
@ -16,18 +15,22 @@ type mcp3008 struct {
|
|||
var SingleMode byte = 1
|
||||
var DifferenceMode byte = 0
|
||||
|
||||
func New(mode byte, bus embd.SPIBus) *mcp3008 {
|
||||
return &mcp3008{mode, bus}
|
||||
func New(mode byte, bus embd.SPIBus) *MCP3008 {
|
||||
return &MCP3008{mode, bus}
|
||||
}
|
||||
|
||||
func (m *mcp3008) AnalogValueAt(chanNum int) (int, error) {
|
||||
data := make([]uint8, 3)
|
||||
data[0] = 1
|
||||
const (
|
||||
startBit = 1
|
||||
)
|
||||
|
||||
func (m *MCP3008) AnalogValueAt(chanNum int) (int, error) {
|
||||
var data [3]uint8
|
||||
data[0] = startBit
|
||||
data[1] = uint8(m.mode)<<7 | uint8(chanNum)<<4
|
||||
data[2] = 0
|
||||
|
||||
glog.V(2).Infof("mcp3008: sendingdata buffer %v", data)
|
||||
if err := m.bus.TransferAndRecieveData(data); err != nil {
|
||||
if err := m.bus.TransferAndRecieveData(data[:]); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue