Skip to content

Commit

Permalink
Fix digital pin mapping to pin change interrupt registers, update tes…
Browse files Browse the repository at this point in the history
…t sketch with more pins.
  • Loading branch information
mjbrown committed Jul 30, 2015
1 parent a7f69fc commit fc95d96
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
Expand Up @@ -31,13 +31,34 @@ void twoChangeDetected( void )
blue += 16;
}

void threeChangeDetected( void )
{
red = 0;
}

void fourChangeDetected( void )
{
green = 0;
}

void fiveChangeDetected( void )
{
blue = 0;
}

void setup() {
pinMode(0, INPUT);
pinMode(1, INPUT);
pinMode(2, INPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
pinMode(5, INPUT);
PCintPort::attachInterrupt(0, zeroChangeDetected, CHANGE);
PCintPort::attachInterrupt(1, oneChangeDetected, CHANGE);
PCintPort::attachInterrupt(2, twoChangeDetected, CHANGE);
PCintPort::attachInterrupt(3, threeChangeDetected, CHANGE);
PCintPort::attachInterrupt(4, fourChangeDetected, CHANGE);
PCintPort::attachInterrupt(5, fiveChangeDetected, CHANGE);
Bean.setLed(0xFF, 0xFF, 0xFF); // Flash to show the sketch is running
Bean.sleep(250);
}
Expand Down
4 changes: 2 additions & 2 deletions hardware/bean/avr/variants/bean+/pins_arduino.h
Expand Up @@ -54,8 +54,8 @@ static const uint8_t CC_INTERRUPT_PIN = 16;
// TODO - I don't know what this stuff is
#define digitalPinToPCICR(p) (((p) >= 0 && (p) <= 21) ? (&PCICR) : ((uint8_t *)0))
#define digitalPinToPCICRbit(p) (((p) <= 7) ? 2 : (((p) <= 13) ? 0 : 1))
#define digitalPinToPCMSK(p) (((p) <= 7) ? (&PCMSK2) : (((p) <= 13) ? (&PCMSK0) : (((p) <= 21) ? (&PCMSK1) : ((uint8_t *)0))))
#define digitalPinToPCMSKbit(p) (((p) <= 7) ? (p) : (((p) <= 13) ? ((p) - 8) : ((p) - 14)))
#define digitalPinToPCMSK(p) (((p) <= 3) ? (&PCMSK2) : (&PCMSK0))
#define digitalPinToPCMSKbit(p) (((p) >= 4) ? (p - 4) : (((p) <= 2) ? (2*p+2) : (7)))

#ifdef ARDUINO_MAIN

Expand Down

0 comments on commit fc95d96

Please sign in to comment.