Gehe ich richtig in der Annahme das ein PCINT, also ein Pin Change
Interrupt, wie der Name schon sagt, jegliche Flankenänderung als
Interrupt nutzt?
Also sowohl eine steigende und eine fallende Flanke? Dies kann man
leider auf Hardwareebene nicht so einstellen das er ausschließlich
steigend oder fallend Detektiert so wie es bei einem normalen Externen
Interrupt möglich ist?!
Wie löst ihr das dann Softwareseitig um eine Steigende / Fallende Flanke
zu ermitteln? Einfach denn Interrupt kommen lassen und dann
kontrollieren ob der Pegel am Pin high oder low ist?
Also so zum Beispiel (tiny44, PCINT1):
1 | void PC_Int() org 0x0002
|
2 | {
|
3 | if(PINA.B1 == 1)
|
4 | {
|
5 | //steigender Flanke
|
6 | } else {
|
7 |
|
8 | //fallende Flanke
|
9 | }
|
10 | }
|
Oder kann man dies auch eleganter lösen?!