<h3>Contribution description</h3>
<p>This is pseudomodule-based version of pin change interrupts for the atmega common platform. Challenge was, that each bank of pin change interrupts (PCINT0, ..., PCINT3) mixes ports. Therefore some magic has to happen.</p>
<p>The memory consumption is: (1 byte (state) + 8 byte (mapping) + 8*6 (config)) per used bank. This means if a single PCINT is used on a pin we need 57 bytes of additional memory.</p>
<p>Additionally, each cpu needs an <code>atmega_pcint.h</code> for the specific PCINT mapping.</p>
<h3>Issues/PRs references</h3>
<p>See also <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="258065620" data-permission-text="Issue title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/7610" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/7610/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/7610">#7610</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="316112631" data-permission-text="Issue title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/8993" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/8993/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/8993">#8993</a>, <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="325161174" data-permission-text="Issue title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/9159" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/9159/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/9159">#9159</a>. This is an follow up PR for <a class="issue-link js-issue-link" data-error-text="Failed to load issue title" data-id="417686824" data-permission-text="Issue title is private" data-url="https://github.com/RIOT-OS/RIOT/issues/11114" data-hovercard-type="pull_request" data-hovercard-url="/RIOT-OS/RIOT/pull/11114/hovercard" href="https://github.com/RIOT-OS/RIOT/pull/11114">#11114</a></p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/RIOT-OS/RIOT/pull/11122'>https://github.com/RIOT-OS/RIOT/pull/11122</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>cpu/atmega_common: pin change interrupt implementation.</li>
  <li>fixup</li>
  <li>fixup</li>
  <li>fixup! removes context switch #ifdefs</li>
  <li>cpu/atmega_common: first draft of pseudomodule-based version</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/11122/files#diff-0">cpu/atmega1284p/include/atmega_pcint.h</a>
    (7)
  </li>
  <li>
    <strong>A</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/11122/files#diff-1">cpu/atmega2560/include/atmega_pcint.h</a>
    (6)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/11122/files#diff-2">cpu/atmega_common/Makefile.include</a>
    (3)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/RIOT-OS/RIOT/pull/11122/files#diff-3">cpu/atmega_common/periph/gpio.c</a>
    (210)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/RIOT-OS/RIOT/pull/11122.patch'>https://github.com/RIOT-OS/RIOT/pull/11122.patch</a></li>
  <li><a href='https://github.com/RIOT-OS/RIOT/pull/11122.diff'>https://github.com/RIOT-OS/RIOT/pull/11122.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/RIOT-OS/RIOT/pull/11122">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AEn7YANiHUd-XGK9EqqR8ovp7tLwG5Hxks5vUOKfgaJpZM4biyPa">mute the thread</a>.<img src="https://github.com/notifications/beacon/AEn7YDxwdImj8dWdXlqLWJCeHE5QnxIrks5vUOKfgaJpZM4biyPa.gif" height="1" width="1" alt="" /></p>
<script type="application/json" data-scope="inboxmarkup">{"api_version":"1.0","publisher":{"api_key":"05dde50f1d1a384dd78767c55493e4bb","name":"GitHub"},"entity":{"external_key":"github/RIOT-OS/RIOT","title":"RIOT-OS/RIOT","subtitle":"GitHub repository","main_image_url":"https://github.githubassets.com/images/email/message_cards/header.png","avatar_image_url":"https://github.githubassets.com/images/email/message_cards/avatar.png","action":{"name":"Open in GitHub","url":"https://github.com/RIOT-OS/RIOT"}},"updates":{"snippets":[{"icon":"DESCRIPTION","message":"Hartung/atmega pin change interrupt pseudomodules (#11122)"}],"action":{"name":"View Pull Request","url":"https://github.com/RIOT-OS/RIOT/pull/11122"}}}</script>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/RIOT-OS/RIOT/pull/11122",
"url": "https://github.com/RIOT-OS/RIOT/pull/11122",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>