switch (mode) {
case INPUT:
pin_timer_off(pinlist[pin].timer);
- ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
+ ATOMIC_BLOCK(ATOMIC_FORCEON) {
p->ddr &= ~bit;
p->pout &= ~bit;
}
break;
case INPUT_PULLUP:
pin_timer_off(pinlist[pin].timer);
- ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
+ ATOMIC_BLOCK(ATOMIC_FORCEON) {
p->ddr &= ~bit;
p->pout |= bit;
}
case OUTPUT:
pin_timer_off(pinlist[pin].timer);
case OUTPUT_TIMER:
- ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
+ ATOMIC_BLOCK(ATOMIC_FORCEON) {
p->ddr |= bit;
}
break;
port_t *p = pinlist[pin].adr;
uint8_t bit = pinlist[pin].mask;
- ATOMIC_BLOCK(ATOMIC_RESTORESTATE) {
+ ATOMIC_BLOCK(ATOMIC_FORCEON) {
if (val)
p->pout |= bit;
else