Eu estou tentando criar um ISR que opera por 15 segundos quando
um determinado botão é pressionado. Eu estou tentando usar as
funções do AVR no meu Arduino Uno para começar a contar quando ele
entra no ISR, em seguida, encerre o loop quando ele atingir 15
segundos.
Eu estou tendo dificuldade em raciocinar onde o contador está
realmente armazenado que eu quero usar para o meu loop while.
Aqui esta o meu codigo ate agora:
#define button_pin 2
#define duration 15
#define osc_in 0
#include
#include
const float convert = 5.0/1023.0;
void setup() {
TCCR1A = 0;
TCCR1B = 0;
TCNT1 = 0;
attachInterrupt(digitalPinToInterrupt(button_pin), button_interrupt, CHANGE);
sei();
pinMode(button_pin, INPUT);
Serial.begin(9600);
}
void loop() {
//int channel1 = analogRead(osc_in);
//while (millis() < 10000)
//Serial.println(millis());
//Serial.println(channel1 * convert);
//channel2 = channel1;
}
void button_interrupt(){
//(# timer counts + 1) = (target time)/(timer resolution)
//int timer_counts = duration/(pow(6.4, -5));
//int dur = 234374;
OCR1A = 234374;
TCCR1B |= (1 << CS10);
while (????????){
int channel1 = analogRead(osc_in);
Serial.println(channel1 * convert);
}
}