avr: clean up ATtiny definitions

Add definitions for constants like PB0.
This commit is contained in:
Ayke van Laethem
2020-03-15 22:06:32 +01:00
committed by Ron Evans
parent 3b1759f463
commit 8c86eae924
3 changed files with 42 additions and 30 deletions
+6 -6
View File
@@ -8,12 +8,12 @@ func CPUFrequency() uint32 {
}
const (
P0 Pin = 0
P1 Pin = 1
P2 Pin = 2
P3 Pin = 3
P4 Pin = 4
P5 Pin = 5
P0 Pin = PB0
P1 Pin = PB1
P2 Pin = PB2
P3 Pin = PB3
P4 Pin = PB4
P5 Pin = PB5
LED = P1
)
-24
View File
@@ -2,30 +2,6 @@
package machine
import (
"device/avr"
"runtime/volatile"
)
// Configure sets the pin to input or output.
func (p Pin) Configure(config PinConfig) {
if config.Mode == PinOutput { // set output bit
avr.DDRB.SetBits(1 << uint8(p))
} else { // configure input: clear output bit
avr.DDRB.ClearBits(1 << uint8(p))
}
}
func (p Pin) getPortMask() (*volatile.Register8, uint8) {
return avr.PORTB, 1 << uint8(p)
}
// Get returns the current value of a GPIO pin.
func (p Pin) Get() bool {
val := avr.PINB.Get() & (1 << uint8(p))
return (val > 0)
}
// UART on the AVR is a dummy implementation. UART has not been implemented for ATtiny
// devices.
type UART struct {
+36
View File
@@ -0,0 +1,36 @@
// +build attiny85
package machine
import (
"device/avr"
"runtime/volatile"
)
const (
PB0 Pin = iota
PB1
PB2
PB3
PB4
PB5
)
// Configure sets the pin to input or output.
func (p Pin) Configure(config PinConfig) {
if config.Mode == PinOutput { // set output bit
avr.DDRB.SetBits(1 << uint8(p))
} else { // configure input: clear output bit
avr.DDRB.ClearBits(1 << uint8(p))
}
}
func (p Pin) getPortMask() (*volatile.Register8, uint8) {
return avr.PORTB, 1 << uint8(p)
}
// Get returns the current value of a GPIO pin.
func (p Pin) Get() bool {
val := avr.PINB.Get() & (1 << uint8(p))
return (val > 0)
}