avr: clean up ATtiny definitions
Add definitions for constants like PB0.
Этот коммит содержится в:
родитель
3b1759f463
коммит
8c86eae924
3 изменённых файлов: 42 добавлений и 30 удалений
|
@ -8,12 +8,12 @@ func CPUFrequency() uint32 {
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
P0 Pin = 0
|
P0 Pin = PB0
|
||||||
P1 Pin = 1
|
P1 Pin = PB1
|
||||||
P2 Pin = 2
|
P2 Pin = PB2
|
||||||
P3 Pin = 3
|
P3 Pin = PB3
|
||||||
P4 Pin = 4
|
P4 Pin = PB4
|
||||||
P5 Pin = 5
|
P5 Pin = PB5
|
||||||
|
|
||||||
LED = P1
|
LED = P1
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,30 +2,6 @@
|
||||||
|
|
||||||
package machine
|
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
|
// UART on the AVR is a dummy implementation. UART has not been implemented for ATtiny
|
||||||
// devices.
|
// devices.
|
||||||
type UART struct {
|
type UART struct {
|
||||||
|
|
36
src/machine/machine_attiny85.go
Обычный файл
36
src/machine/machine_attiny85.go
Обычный файл
|
@ -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)
|
||||||
|
}
|
Загрузка…
Создание таблицы
Сослаться в новой задаче