mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-07 12:33:42 +00:00
7513fa2c96
There are two main issues with these constants:
* They don't follow the Go naming convention.
* They call themselves "TWI", while it makes a lot more sense to refer
to the actual name which is I2C (or I²C).
I have not removed them but just deprecated them. Perhaps we can remove
them when we move towards version 1.0.
63 lines
1.9 KiB
Go
63 lines
1.9 KiB
Go
package machine
|
|
|
|
import "errors"
|
|
|
|
var (
|
|
ErrTimeoutRNG = errors.New("machine: RNG Timeout")
|
|
ErrInvalidInputPin = errors.New("machine: invalid input pin")
|
|
ErrInvalidOutputPin = errors.New("machine: invalid output pin")
|
|
ErrInvalidClockPin = errors.New("machine: invalid clock pin")
|
|
ErrInvalidDataPin = errors.New("machine: invalid data pin")
|
|
ErrNoPinChangeChannel = errors.New("machine: no channel available for pin interrupt")
|
|
)
|
|
|
|
// Device is the running program's chip name, such as "ATSAMD51J19A" or
|
|
// "nrf52840". It is not the same as the CPU name.
|
|
//
|
|
// The constant is some hardcoded default value if the program does not target a
|
|
// particular chip but instead runs in WebAssembly for example.
|
|
const Device = deviceName
|
|
|
|
// Generic constants.
|
|
const (
|
|
KHz = 1000
|
|
MHz = 1000_000
|
|
GHz = 1000_000_000
|
|
)
|
|
|
|
// PinMode sets the direction and pull mode of the pin. For example, PinOutput
|
|
// sets the pin as an output and PinInputPullup sets the pin as an input with a
|
|
// pull-up.
|
|
type PinMode uint8
|
|
|
|
type PinConfig struct {
|
|
Mode PinMode
|
|
}
|
|
|
|
// Pin is a single pin on a chip, which may be connected to other hardware
|
|
// devices. It can either be used directly as GPIO pin or it can be used in
|
|
// other peripherals like ADC, I2C, etc.
|
|
type Pin uint8
|
|
|
|
// NoPin explicitly indicates "not a pin". Use this pin if you want to leave one
|
|
// of the pins in a peripheral unconfigured (if supported by the hardware).
|
|
const NoPin = Pin(0xff)
|
|
|
|
// High sets this GPIO pin to high, assuming it has been configured as an output
|
|
// pin. It is hardware dependent (and often undefined) what happens if you set a
|
|
// pin to high that is not configured as an output pin.
|
|
func (p Pin) High() {
|
|
p.Set(true)
|
|
}
|
|
|
|
// Low sets this GPIO pin to low, assuming it has been configured as an output
|
|
// pin. It is hardware dependent (and often undefined) what happens if you set a
|
|
// pin to low that is not configured as an output pin.
|
|
func (p Pin) Low() {
|
|
p.Set(false)
|
|
}
|
|
|
|
type ADC struct {
|
|
Pin Pin
|
|
}
|