Evento doppio click con PIC18

12 Anni 3 Mesi fa #1 da michelefax
Evento doppio click con PIC18 è stato creato da michelefax
Ciao a tutti,
stò lavorando ad un progetto personale che ha come scopo quello di gestire le luci di casa mia.
Il dispositivo finale dovrebbe accendere e spegnere le luci sia da pulsante a parete sia da telecomando codifica RC5.
Vorrei reperire un flowchart per riconoscere quattro eventi nella pressione di tasti per esempio collegati ad una porta del pic18.
In particolare dovrei poter riconoscere i seguenti eventi:
1)pressione prolungata di un tasto: a cui pensavo di associare lo spegnimento di tutte le luci
2)singola pressione corta (click singolo): che accende se spenta o spegne se accesa una singola luce
3)doppia pressione corta (doppio click): che accende tutte le luci
4)pressione singola seguita da pressione prolungata:che mette in modo programmazione il dispositivo così da associare al tasto premuto il primo codice telecomando che viene successivamente ricevuto.

Allora, al momento il dispositivo prototipo allestito con Freedom II riconosce i codici del telecomando e la pressione dei pulsanti accendendo e spegnendo le singole luci ma di più non riesce a fare.
Le luci sono gestite da un I/O expander PCF8574 configurato con tutte uscite.
I pulsanti fanno capo ad un altro PCF8574 configurato con tutti ingressi e gestito con interrupt.

Alla fine di tutto questo discorso che potrebbe anche non interessare a nessuno chiedo se qualche anima pia mi può aiutare a trovare un flowchart o parte di codice che mi permetta, come detto sopra, di intercettare il click singolo, il doppio click e la pressione prolungata di un pulsante.
Per il momento tutte le mie ricerche hanno prodotto esito negativo.

Grazie a tutti.
michelefax

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • michelefax
  • New Member
  • New Member
Di più
12 Anni 3 Mesi fa #2 da Akuryu
Risposta da Akuryu al topic Re: Evento doppio click con PIC18
Allora provo ad andarmene per un idea, vediamo se ci azzecco (sperando che se dico castronerie non mi menano) se utilizzi il pulsante sull'interrupt e ad ogni pressione incrementi una variabile che poi controlli nel main potresti avere questa situazione.
Caso 1: Pressione prolungataVariabile a 1
Pressione continua
Caso 2: Pressione CortaVariabile a 1
Nessuna Pressione
Caso 3: Doppia pressione cortaVariabile a 2
Pressione continua
Caso 4: click + pressioneVariabile a 2
Pressione continua

Alla fin della funzione al controllo si resetta la variabile, il controllo nel main in loop. Spero di essermi spiegato alquanto chiaramente. :)
Ringraziano per il messaggio: michelefax

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Akuryu
  • Avatar di Akuryu
  • Premium Member
  • Premium Member
Di più
Moderatori: Mauro LaurentiPinnaStefAMatteo Garia

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login