Support for non-aligned PCINTs #390
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Some chips have PCINT setups that are not aligned with ports.
For example, the 2560 has PCINT8 on E0, and PCINT9-15 on J0-6
This adds a mask and shift option to the PCINT declaration to support this.
The default mask behaviour is that if mask = 0 (no PCINTs, this doesn't make sense in a normal context) then the behaviour is as before. If mask and/or shift are defined, the bitfield is shifted appropriately to align it with the expectation for the & with irq->irq.
Also includes a fix for PORTJ on the 2560 to enable its PCINTs using this.