Autore Topic: [RISOLTO] Interrupt su raspberry  (Letto 3918 volte)

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
[RISOLTO] Interrupt su raspberry
« il: 09 Agosto 2013, 09:40:47 »
 :ciao:
Sto cercando di intercettare la pressione di un pulsante collegato alle porte Gpio di Raspberry.
Ovviamente impiego la libreria wiringPI  -  http://wiringpi.com
e la funzione wiringPiISR che dovrebbe produrre un interrupt.
Qualcuno a fatto delle prove?

 :ciao:
« Ultima modifica: 22 Agosto 2013, 09:48:43 da kicco »
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.725
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #1 il: 09 Agosto 2013, 10:16:49 »
Cercando su internet certamente troverai esempi in C.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #2 il: 09 Agosto 2013, 13:28:36 »
Mi sembra che gli interrupt non siano supportati, l'unica cosa è lavorare in polling.

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #3 il: 10 Agosto 2013, 15:30:50 »
Citazione
l'unica cosa è lavorare in polling.

cioè controllare il pulsante continuamente?
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.725
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #4 il: 10 Agosto 2013, 16:44:41 »
Mi sembra che gli interrupt non siano supportati

...eppure in questa pagina sembrerebbe il contrario:

http://wiringpi.com/reference/priority-interrupts-and-threads/
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #5 il: 11 Agosto 2013, 13:48:13 »
 :ciao:
grazie Vuott,
arrivo proprio da quella pagina, ma ahimè quando "scatta" l'interrupt esce un avviso di stack overflow :'(
Sono in buona compagnia perchè altri hanno il medesimo problema.
So che Minisini è al corrente, speravo avesse sistemato la questione o che magari qualcuna avesse escogitato qualche trucco...

Speriamo :-\
 :ciao:
« Ultima modifica: 11 Agosto 2013, 14:04:55 da kicco »
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.725
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #6 il: 11 Agosto 2013, 16:10:16 »
arrivo proprio da quella pagina, ma ahimè quando "scatta" l'interrupt esce un avviso di stack overflow :'(
Sono in buona compagnia perchè altri hanno il medesimo problema.
So che Minisini è al corrente,....

Questi "altri", cioè, sono solo programmatori Gambas, oppure è un problema intrinseco alla funzione (e quindi sta accadendo a tutti, anche a quelli che programmano in altri linguaggi) ?
« Ultima modifica: 11 Agosto 2013, 17:24:49 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #7 il: 11 Agosto 2013, 17:23:09 »
Ciao Vuott,
sei stato tu a riportare una discussione sulla MLI e poi ad aggiornarla su mia richiesta  :)
http://www.gambas-it.org/smf/index.php?topic=2546.msg26990#msg26990
in giro ho trovato altri particolari di questa diatriba dove Minisini diceva che se Gambas era compilato su raspberry il problema non doveva sussistere.
Poi proponeva di riscrivere il componenete i C o di chiedere all'autore della libreria di fare una certa serie di cose...
La libreria di recente è passata alla versione 2 ma non è cambiato niente riguardo questo problema :-\

sempre grazie!!! ;)
 
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.725
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #8 il: 11 Agosto 2013, 17:31:18 »
Ciao Vuott,
sei stato tu a riportare una discussione sulla MLI e poi ad aggiornarla su mia richiesta  :)
http://www.gambas-it.org/smf/index.php?topic=2546.msg26990#msg26990
 
Ah, ho visto... eh, non ricordavo più  :-\ con precisione. 
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #9 il: 11 Agosto 2013, 17:55:39 »
 :)
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline El Berto

  • Grande Gambero
  • ***
  • Post: 148
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #10 il: 12 Agosto 2013, 16:10:27 »
Mi sembra che gli interrupt non siano supportati

...eppure in questa pagina sembrerebbe il contrario:

http://wiringpi.com/reference/priority-interrupts-and-threads/

Ma infatti c'è un "interrupt_wait", che non ha senso.
Da qualche parte avevo letto che il Raspberry non è progettato per gestire gli interrupt.

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #11 il: 12 Agosto 2013, 17:58:16 »
Dipende anche dal tipo di processore che è montato sopra.

Ad ogni modo, se non in particolari condizioni, l'suo diretto degli interrupt è sconsigliabile, a meno che non si sappia esattamente cosa si stà facendo.

E' da tener presente che gambas è un linguaggio ad alto livello, e non dispone degli strumenti necessari per la gestione di codice a basso livello, come gli interrupt di sistema.

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #12 il: 13 Agosto 2013, 18:00:53 »
Citazione
Dipende anche dal tipo di processore che è montato sopra.
ARM
Citazione
Ad ogni modo, se non in particolari condizioni, l'suo diretto degli interrupt è sconsigliabile, a meno che non si sappia esattamente cosa si stà facendo.
Convengo, ma se devo monitorare un pulsante (fisico) non posso fermare tutto e fare un ciclo di controllo magari utilizzando un loop che tiene sotto controllo un comando proveniente da una shell che usa i comandi diretti supportati dalla libreria wiringPi! :-\
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #13 il: 14 Agosto 2013, 00:22:01 »
Puoi usare un timer?
Ripeto, non conoso quell'hardware, per cui stò dando solo delle idee.
A suo tempo, in dos, controllavo le porte seriali tramite interrupt, e potevo controllarne anche più di una contemporaneamente con lo stesso int.
Sò che un timer non è uguale ad un int diretto su una porta, ma ne gestisce uno suo, e se quello che penso è vero, calcolando un tempo di delay sufficiente, puoi usarlo per analizzare la porta del pulsante.
Tieni conto che, trattandosi di un pulsante, gestito manualmente, la velocità e la durata dell'impulso è piuttosto alta. Se poi ci aggiungi un apposito condensatore calcolato correttamente, puoi tenere il segnale in piedi il tempo che serve.

Offline kicco

  • Senatore Gambero
  • ******
  • Post: 1.725
  • So dove andare, seguitemi, ci perderemo insieme!
    • Mostra profilo
Re: Interrupt su raspberry
« Risposta #14 il: 14 Agosto 2013, 10:54:33 »
Citazione
stò dando solo delle idee.
grazie  :) è quello che mi serve!
 :ciao:
Chi ha paura muore ogni giorno, chi non ha paura muore una volta sola. (Paolo Borsellino)