machine/atmega: add PORT C GPIO support
Этот коммит содержится в:
родитель
e139a9dd71
коммит
2f059ac91e
1 изменённых файлов: 13 добавлений и 4 удалений
|
@ -12,14 +12,18 @@ func (p Pin) Configure(config PinConfig) {
|
||||||
if config.Mode == PinOutput { // set output bit
|
if config.Mode == PinOutput { // set output bit
|
||||||
if p < 8 {
|
if p < 8 {
|
||||||
avr.DDRD.SetBits(1 << uint8(p))
|
avr.DDRD.SetBits(1 << uint8(p))
|
||||||
} else {
|
} else if p < 14 {
|
||||||
avr.DDRB.SetBits(1 << uint8(p-8))
|
avr.DDRB.SetBits(1 << uint8(p-8))
|
||||||
|
} else {
|
||||||
|
avr.DDRC.SetBits(1 << uint8(p-14))
|
||||||
}
|
}
|
||||||
} else { // configure input: clear output bit
|
} else { // configure input: clear output bit
|
||||||
if p < 8 {
|
if p < 8 {
|
||||||
avr.DDRD.ClearBits(1 << uint8(p))
|
avr.DDRD.ClearBits(1 << uint8(p))
|
||||||
} else {
|
} else if p < 14 {
|
||||||
avr.DDRB.ClearBits(1 << uint8(p-8))
|
avr.DDRB.ClearBits(1 << uint8(p-8))
|
||||||
|
} else {
|
||||||
|
avr.DDRC.ClearBits(1 << uint8(p-14))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,17 +33,22 @@ func (p Pin) Get() bool {
|
||||||
if p < 8 {
|
if p < 8 {
|
||||||
val := avr.PIND.Get() & (1 << uint8(p))
|
val := avr.PIND.Get() & (1 << uint8(p))
|
||||||
return (val > 0)
|
return (val > 0)
|
||||||
} else {
|
} else if p < 14 {
|
||||||
val := avr.PINB.Get() & (1 << uint8(p-8))
|
val := avr.PINB.Get() & (1 << uint8(p-8))
|
||||||
return (val > 0)
|
return (val > 0)
|
||||||
|
} else {
|
||||||
|
val := avr.PINC.Get() & (1 << uint8(p-14))
|
||||||
|
return (val > 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p Pin) getPortMask() (*volatile.Register8, uint8) {
|
func (p Pin) getPortMask() (*volatile.Register8, uint8) {
|
||||||
if p < 8 {
|
if p < 8 {
|
||||||
return avr.PORTD, 1 << uint8(p)
|
return avr.PORTD, 1 << uint8(p)
|
||||||
} else {
|
} else if p < 14 {
|
||||||
return avr.PORTB, 1 << uint8(p-8)
|
return avr.PORTB, 1 << uint8(p-8)
|
||||||
|
} else {
|
||||||
|
return avr.PORTC, 1 << uint8(p-14)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче