Page 1 of 1

Powerdown mode

PostPosted: 28 May 2015, 08:21
by tnnbascom
Salve,
devo gestire una tastiera 4x3 e voglio che il microprocessore sia in powerdown fino a quando non viene premuto un tasto della tastiera... qualcuno ha un idea? grazie.

Ho seguito per il collegamento della tastiera l'esempio del Bascom Getkbd e funziona correttamente...

il codice che ho usato è:
Code: Select all
'********TEST KEYBOARD
Do
      Keyread = Getkbd()
      If Keyread <> 0 Then
         Key = Lookup(keyread , Dta)
         Locate 2 , 1
         Lcd Key ; "   " ; Keyread ; " "
         Do
            Waitms 1
            Keyread = Getkbd()
         Loop Until Keyread = 0
      End If
Loop
end
Dta:
    Data 12 , 9 , 6 , 3 , 0 , 8 , 5 , 2 , 11 , 7 , 4 , 1
'****END TEST

Re: Powerdown mode

PostPosted: 28 May 2015, 13:04
by pier
Credo che dopo aver letto con getkbd() il valore del tasto premuto e averlo utilizzato ai tuoi fini, potresti mandare alti i 4 pin delle colonne subito prima di dare un powerdown. L'uscita da questa condizione potrebbe essere ottenuta mandando le 3 righe (in OR magari anche con 3 diodi ed una resistenza di chiusura a gnd) della tastiera all'INT0 o INT1 (quello che usi deve essere configurato e abilitato).
Così facendo alla prima esecuzione del loop il codice legge la tastiera, usa il dato (gestire il dato di nessun tasto premuto), porta alte le colonne e manda il micro in powerdown in attesa che un tasto qualsiasi sia premuto generando l'interrupt che determina l'uscita dallo sleep e quindi la ripetizione del loop stesso.
Questa idea è tratta da qui http://www.markantonio.com/markantonio/ ... ssiva.html che descrive (in modo per la verità un po' complicato) questa soluzione per i pic.

Spero ti sia utile
Pier

Re: Powerdown mode

PostPosted: 28 May 2015, 13:36
by deluca
@Pier
concordo pienamente con la tua indicazione che poi sarebbe stata anche la mia....
- Fare in modo che qualsiasi tasto premuto generi un segnale logico (in OR) utile per scatenare INT e quindi il risveglio del micro.

PS. attenzione cmq al valore della resistenza che deve essere di valore alto per evitare di consumare + della corrente in modalità normale.

Re: Powerdown mode

PostPosted: 28 May 2015, 17:52
by pier
Caro Deluca, concordo per il valore della resistenza di chiusura (è a quella che fai riferimento?) benchè questa "consumerebbe" solo durante la pressione dei tasti.
Piuttosto starei attento al partitore costituito da questa e dalle resistenze di pilotaggio delle colonne (assicurarsi che il livello logico ottenuto sia sufficiente ad essere sentito come valido).

Re: Powerdown mode

PostPosted: 29 May 2015, 09:12
by deluca
concordo :)