pinMode(SENSORE,INPUT);// c'è qualcosa che non va? ;)
pinMode(SENSORE,INPUT_PULLUP);
pinMode(ATTUATORE,OUTPUT);
pinMode(LED_BUILTIN,OUTPUT);
// CONFIGURAZIONE
attachInterrupt(
digitalPinToInterrupt(SENSORE),
rispostaInterrupt,
lap,
RISING);
...
...
@@ -103,9 +116,13 @@ void loop() {
//boolean scattato=digitalRead(SENSORE); // non serve più
if(updated){
//Serial.print(timestamp);
//Serial.print(F(","));
Serial.print(durata);
Serial.print(F(","));
//Serial.print(F("durata:"));
//Serial.print(durata);
Serial.print(F("media:"));
Serial.print(durataMedia);
Serial.print(F(",desiderata:"));
Serial.print(durataDesiderata);
Serial.print(F(",duty:"));
Serial.println(duty*100);
//Serial.print(",");
//Serial.println(scattato);
...
...
@@ -132,7 +149,7 @@ void loop() {
}
voidrispostaInterrupt(){
voidlap(){
//noInterrupts(); // non si può invocare da dentro, non ha effetto, va usata fuori per marcare sezioni critiche, qui dentro parte già a interrupt disabilitati
/* versione "monitor" (dei poveri)
...
...
@@ -148,8 +165,9 @@ void rispostaInterrupt() {
//Serial.println("int!"); //da non fare...
longm=millis();
if((m-timestamp)>5){// per eliminare gli interrupt spuri
if((m-timestamp)>RUMORE){// per eliminare gli interrupt spuri