Оформи код соответствующим тэгом, см. Правила
Ребят, подскажите. Порыскал на форуме, не нашел.
Нашел пример по смене пинов прерывания на attiny85, немного откорректировал под себя.
#include <avr/interrupt.h>
volatile int value=0;
void setup(){
GIMSK = 0b00100000; // включение прерывание на PCMSK
PCMSK = 0b00000010; // пин прерывания PB1 в данном случаи.
sei(); // включить прерывание
}
void loop(){
// остальные процессы
}
ISR(PCINT0_vect){
value++; // если прерывание сработало.
}
Подскажите, Срабатывает и на нажатие и отпускание, то есть 2 раза. Есть ли какое то решение по срабатыванию только на нажатие? Еще момент, можно конечно логически написать, чтоб value рос только по нажатию, но не хотелось бы скеч нагружать. Может есть какое то решение аппаратное? Или подскажите где можно почитать на эту тему.
Нашел пример по смене пинов прерывания на attiny85, немного откорректировал под себя.
#include <avr/interrupt.h>
volatile int value=0;
void setup(){
GIMSK = 0b00100000; // включение прерывание на PCMSK
PCMSK = 0b00000010; // пин прерывания PB1 в данном случаи.
sei(); // включить прерывание
}
void loop(){
// остальные процессы
}
ISR(PCINT0_vect){
value++; // если прерывание сработало.
}
Подскажите, Срабатывает и на нажатие и отпускание, то есть 2 раза. Есть ли какое то решение по срабатыванию только на нажатие? Еще момент, можно конечно логически написать, чтоб value рос только по нажатию, но не хотелось бы скеч нагружать. Может есть какое то решение аппаратное? Или подскажите где можно почитать на эту тему.
Изменено: