Signed-off-by: Stephan Veigl <veigl@gmx.net>
3 files changed:
avr_ioport_t * p = (avr_ioport_t *)param;
avr_t * avr = p->io.avr;
- int output = value & 0x100;
+ int output = value & AVR_IOPORT_OUTPUT;
value &= 0xff;
uint8_t mask = 1 << irq->irq;
// set the real PIN bit. ddr doesn't matter here as it's masked when read.
IOPORT_IRQ_COUNT
};
+#define AVR_IOPORT_OUTPUT 0x100
+
// add port name (uppercase) to get the real IRQ
#define AVR_IOCTL_IOPORT_GETIRQ(_name) AVR_IOCTL_DEF('i','o','g',(_name))
case avr_timer_com_toggle: // Toggle OCnA on compare match
if (p->comp[comp].com_pin.reg) // we got a physical pin
avr_raise_irq(irq,
- 0x100 + (avr_regbit_get(avr, p->comp[comp].com_pin) ? 0 : 1));
+ AVR_IOPORT_OUTPUT | (avr_regbit_get(avr, p->comp[comp].com_pin) ? 0 : 1));
else // no pin, toggle the IRQ anyway
avr_raise_irq(irq,
p->io.irq[TIMER_IRQ_OUT_COMP + comp].value ? 0 : 1);