Problemi con l' interrupt di ARDUINODUE

Sezione dedicata alla robotica mobile

Problemi con l' interrupt di ARDUINODUE

Postby alieno75 » 17 Nov 2014, 11:04

Ho installato le librerie DueTimer scaricate qui ---> https://github.com/ivanseidel/DueTimer/releases
poi ho aggiunto questo codice come indicato nel README:

Code: Select all
    //funzione di risposta dell' interrupt del rilevamento pulsanti pavimento  (alzata robot)
    void pavimento()
    {
      if(leggi_puls(PULS_ZAMPA_IND_SX)==HIGH)
      {
         
               
      }
    }


    void setup() {
      //configurazione delle uscite PWM
      braccio_dx.attach(2);
      avanbraccio_dx.attach(3);
      braccio_sx.attach(4);
      avanbraccio_sx.attach(9);   
     
      gamba_dx.attach(6);
      piede_dx.attach(7);
      gamba_sx.attach(11);
      piede_sx.attach(10);
     
      //configurazione degli 8 pulsanti;
      pinMode(51, INPUT);
      pinMode(49, INPUT);
      pinMode(47, INPUT);
      pinMode(45, INPUT);
      pinMode(43, INPUT);
      pinMode(41, INPUT);
      pinMode(39, INPUT);
      pinMode(37, INPUT);
     
      //configurazione interrupt rilevazione alzata robot
      Timer6.attachInterrupt(pavimento);
      Timer6.start(100000);         //rileva pulsanti ogni 100msec.
    }





Una volta compilato e trasferito noto che i servi del robot non si muovono piu e sono flosci e non ricevono segnale.
Se commento l' if() in mezzo alla funzione dell' handler tutto torna a funzionare ed il robot si muove.
Il mio scopo e' quello di far si che la funzione di interrupt testi se il robot e' appoggiato per terra o sollevato per aria, nel secondo caso deve fermare la camminata, non appena viene rimesso per terra torna a camminare.
Non capisco perche succede che i motori non ricevono segnale se inserisco del codice nella funzione.
alieno75
 
Posts: 135
Joined: 21 Apr 2013, 19:39

Return to Robotica

Who is online

Users browsing this forum: No registered users and 2 guests

cron