mirror of
https://github.com/kidoman/embd
synced 2024-12-22 12:50:19 +01:00
spi: remove types from const declarations and added few more go docs
This commit is contained in:
parent
2d3dee8764
commit
32c9a96af5
@ -5,16 +5,22 @@ import (
|
||||
"github.com/kidoman/embd"
|
||||
)
|
||||
|
||||
// MCP3008 represents a mcp3008 8bit DAC
|
||||
// MCP3008 represents a mcp3008 8bit DAC.
|
||||
type MCP3008 struct {
|
||||
mode byte
|
||||
Mode byte
|
||||
|
||||
bus embd.SPIBus
|
||||
Bus embd.SPIBus
|
||||
}
|
||||
|
||||
var SingleMode byte = 1
|
||||
var DifferenceMode byte = 0
|
||||
const (
|
||||
// SingleMode represents the single-ended mode for the mcp3008.
|
||||
SingleMode = 1
|
||||
|
||||
// DifferenceMode represents the diffenrential mode for the mcp3008.
|
||||
DifferenceMode = 0
|
||||
)
|
||||
|
||||
// New creates a representation of the mcp3008 convertor
|
||||
func New(mode byte, bus embd.SPIBus) *MCP3008 {
|
||||
return &MCP3008{mode, bus}
|
||||
}
|
||||
@ -23,14 +29,15 @@ const (
|
||||
startBit = 1
|
||||
)
|
||||
|
||||
// AnalogValueAt returns the analog value at the given channel of the convertor.
|
||||
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[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
|
||||
}
|
||||
|
||||
|
@ -23,9 +23,9 @@ const (
|
||||
spiIOCMessage0 = 1073769216 //0x40006B00
|
||||
spiIOCIncrementor = 2097152 //0x200000
|
||||
|
||||
defaultDelayms = uint16(0)
|
||||
defaultSPIBPW = uint8(8)
|
||||
defaultSPISpeed = uint32(1000000)
|
||||
defaultDelayms = 0
|
||||
defaultSPIBPW = 8
|
||||
defaultSPISpeed = 1000000
|
||||
)
|
||||
|
||||
type spiIOCTransfer struct {
|
||||
@ -115,12 +115,11 @@ func (b *spiBus) init() error {
|
||||
|
||||
func (b *spiBus) setMode() error {
|
||||
var mode = uint8(b.mode)
|
||||
var err error
|
||||
glog.V(3).Infof("spi: setting spi mode to %v", mode)
|
||||
|
||||
_, _, errno := syscall.Syscall(syscall.SYS_IOCTL, b.file.Fd(), spiIOCWrMode, uintptr(unsafe.Pointer(&mode)))
|
||||
if errno != 0 {
|
||||
err = syscall.Errno(errno)
|
||||
err := syscall.Errno(errno)
|
||||
glog.V(3).Infof("spi: failed to set mode due to %v", err.Error())
|
||||
return err
|
||||
}
|
||||
@ -129,7 +128,7 @@ func (b *spiBus) setMode() error {
|
||||
}
|
||||
|
||||
func (b *spiBus) setSpeed() error {
|
||||
speed := defaultSPISpeed
|
||||
var speed uint32 = defaultSPISpeed
|
||||
if b.speed > 0 {
|
||||
speed = uint32(b.speed)
|
||||
}
|
||||
@ -148,7 +147,7 @@ func (b *spiBus) setSpeed() error {
|
||||
}
|
||||
|
||||
func (b *spiBus) setBPW() error {
|
||||
bpw := defaultSPIBPW
|
||||
var bpw uint8 = defaultSPIBPW
|
||||
if b.bpw > 0 {
|
||||
bpw = uint8(b.bpw)
|
||||
}
|
||||
@ -166,7 +165,7 @@ func (b *spiBus) setBPW() error {
|
||||
}
|
||||
|
||||
func (b *spiBus) setDelay() {
|
||||
delay := defaultDelayms
|
||||
var delay uint16 = defaultDelayms
|
||||
if b.delayms > 0 {
|
||||
delay = uint16(b.delayms)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user