/*primer uporabe zunanje prekinitve*/
#define ledPin 8
#define tipka 2
volatile bool stanje = LOW;
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(tipka, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(tipka), ISR_tipka, FALLING);
}
void loop(){
digitalWrite(ledPin, stanje);
}
void ISR_tipka(){
stanje = !stanje;
}
/* preprečitev odskakovanje+a kontaktov s funkcijo millis
#define tipka 4
bool zadnjeStanje = HIGH;
int stevec;
unsigned long zadnjiOdboj = 0;
int zakasnitevOdboja = 200;
void setup(){
Serial.begin(115200);
pinMode(tipka, INPUT_PULLUP);
}
void loop(){
bool stanje = digitalRead(tipka);
if(stanje != zadnjeStanje && (millis()-zadnjiOdboj) > zakasnitevOdboja){
zadnjiOdboj = millis();
zadnjeStanje = stanje;
if(zadnjeStanje = HIGH){
stevec++;
Serial.println(stevec);
}
}
}
*/
/* števec odskakovanje kontaktov
#define tipka 4
int stevec;
bool zadnjeStanje = HIGH;
void setup() {
Serial.begin(115200);
pinMode(tipka, INPUT_PULLUP);
}
void loop() {
bool stanje = digitalRead(tipka);
if(zadnjeStanje != stanje){
stevec++;
zadnjeStanje = stanje;
Serial.println(stevec);
}
}
*/