Make the 2560 PORTE/0 pin change interrupt visible as it mostly works.
authorga <ga@oldell.fish>
Sat, 27 Mar 2021 12:29:51 +0000 (12:29 +0000)
committerga <ga@oldell.fish>
Sat, 27 Mar 2021 12:48:45 +0000 (12:48 +0000)
commit3c6de37f387e1d310007d2969977e0cda09113ff
tree3c6b542c517c7de9133eb8abca7100b761974b7f
parentd3c1b0fe32cae1cb537d253be62a4a3065e3c4e7
Make the 2560 PORTE/0 pin change interrupt visible as it mostly works.
Add the missing pin change interrupts for 1280 and 1281.

In avr_ioport.[ch], fix multiple causes (but not all) of
mis-triggering of pin change interrupts including upstream issue #343:
Pin change interrupts incorrectly fire when a timer compare event occurs.
Other causes are initial setting of DDR and the AVR_IOPORT_OUTPUT bit.

Move the mask and shift data for ATmega2560 into the ioport structure.

Add a test for pin change interrupts.
simavr/cores/sim_mega1280.c
simavr/cores/sim_mega1281.c
simavr/cores/sim_mega2560.h
simavr/sim/avr_ioport.c
simavr/sim/avr_ioport.h
tests/atmega2560_pin_change.c [new file with mode: 0644]
tests/test_atmega2560_pin_change.c [new file with mode: 0644]