Ok!
#include <avr/interrupt.h>
//Choose where your buttons are:
#define regist PCINT0_vect//All pins on Attiny85 :)
#define bttnA 0
#define bttnB 1
#define bttnC 2
ISR (regist){
if(digitalRead(bttnA)){
//A pressed!
}else if(digitalRead(bttnB)){
//B pressed!
}else if(digitalRead(bttnC)){
//C pressed!
}
}
void setup() {
pinMode(bttnA,INPUT);
pinMode(bttnB,INPUT);
pinMode(bttnC,INPUT);
//Are you using internal pullups? Uncomment these!
// digitalWrite(bttnA,HIGH);
// digitalWrite(bttnB,HIGH);
// digitalWrite(bttnC,HIGH);
// enable interrupt for pins...
GIMSK = 0b00100000; // turns on pin change interrupts
PCMSK = 0b00000111; //On pins 0,1,& 2
}
void loop() {
// Nothing needed
}
This will use buttons on pins 0,1,& 2, listen for a change, and then run code accordingly!