Vai al contenuto
PLC Forum


Sleep X 16f628 - Telecomando in sleep mode


HiEnd

Messaggi consigliati

Colgo l'occasione per salutare tutto il forum,

sono un nuovo iscritto esperto del "vecchio" Z80, ma ai primi passi sui PIC.

Ho realizzato il seguente progetto:

www.elflash.it/pdf/2005lugago/miratelecomando.pdf

Trattasi di un telecomando per accendere/spegnere una lampadina.

Ho modificato il firmware ed il circuito dell'RX

per pilotare il controllo di volume motorizzato, per un amplificatore audio.

Vorrei modificare il firmware del TX per portare il telecomando in

"sleep mode", in modo da preservare la pila dello stesso.

Il cuore del firmware in questione è:

VIA

BTFSS PORTB,0

GOTO C_33

BTFSS PORTB,1

GOTO C_32

GOTO VIA

Purtroppo non conosco l'argomento, per mandarlo in modalità Sleep,

vorrei provare ad inserire l'istruzione in minuscolo:

VIA

BTFSS PORTB,0

GOTO C_33

BTFSS PORTB,1

GOTO C_32

sleep ; <<<<<<<<<<<<<

GOTO VIA

Il problema è che non so come fare a "risvegliare" il micro....

Ho letto altrove che si deve usare un interrupt,

che però interessa solo i bit dal 4 al 7.

Se è così, la prima cosa da fare è spostare i due pulsantini su altri pin

e modificare il software di conseguenza... ma per il resto?

Qualcuno può aiutarmi?

Grazie,

Max

Link al commento
Condividi su altri siti


Per mandare il PIC in sleep c'e' la funzione sleep che esegue tale operazione.

Per il risveglio devi far variare lo stato su un qualsiasi ingresso Rb4-Rb7 , quindi nei telecomandi in genere si collegano proprio i pulsanti su questi ingressi.

Ciao :)

Link al commento
Condividi su altri siti

Grazie Ifachsoftware,

temevo appunto la restrizione all'uso di tali pin,

poco male, farò al circuito le variazioni del caso.

Il problema è che non so come fare...

Potresti, cortesemente, o spiegarmi la procedura nel dettaglio,

o darmi la possibilità di accedere a documentazione chiara sull'argomento?

Naturalmente la domanda è rivolta a Ifachsoftware, che gentilmente mi ha risposto

e a tutti coloro che conoscono l'argomento e possono aiutarmi.

Ciao,

HiEnd

Link al commento
Condividi su altri siti

Ti ringrazio molto per la tua gentilezza, ma purtroppo non mi sei stato d'alcun aiuto...

Io non devo iniziare a programmare e non mi servono programmatori, mi basterebbe conoscere la procedura per "risvegliare" un 16F628, mediante una variazione di satto su due pin di una porta del micro.

Qualcuno mi può aiutare?

Link al commento
Condividi su altri siti

Cortesemente,

qualcuno potrebbe aiutarmi?

Vorrei capire come settare i registri delle porte, degl'interrupt e/o qualsiasi altro settaggio necessario per "risvegliare" il 16F628 dalla modalità "sleep".

Grazie.

Link al commento
Condividi su altri siti

Plcforum non è un call center aziendale, se non otieni risposte (ma qualcuna è arrivata) significa che nessuno può o vuole rispondere, quindi è inutile che solleciti

Link al commento
Condividi su altri siti

Come ti ha detto Ifach , l'istruzione per mandarlo in sleep e.. SLEEP.

Per svegliarlo devi abilitare l'interrupt di cambio stato delle porte RB4 a RB7.

Puoi usare anche quello per RB0 , ma vale solo per un pulsante.

Se vuoi che appena sveglio esegua l'istruzione successiva allo SLEEP devi disabilitare il bit GIE .

Per fare un esempio , mettiamo che hai spostato i tuoi pulsanto nelle porte RB4-7.

All'inizio del tuo programma devi scrivere

movlw B'00001000'   cosi abiliti solo l'interrupt cambio stato
movwf INTCON  
Prima dello sleep, cancelli il flag di int
bcf  INTCON,RBIF  
SLEEP

Cosi sei sicuro che si svegliera' solo quando premi un pulsante.

Adesso un consiglio ...

Devi avere piu' pasienza ... altrimenti avrai sempre risposte come quella di Livio che , per la cronaca, condivido.

Modificato: da dlgcom
Link al commento
Condividi su altri siti

[at]dlgcom

Ti ringrazio molto per la tua spiegazione: è effettivamente tutto quello che m'interessava sapere!

Inoltre chiedo scusa per il sollecitare, ma dopo la risposta di ifachsoftware, temevo non rispondesse più nessuno.....

Come ho detto nel primo post, insieme ai miei saluti a tutti, sono nuovo del forum (in realtà sono acerbo in generale su tutti i forum, una realtà che ho scoperto in questi mesi) e ho pensato che scrivendo un post per sollecitare, chiunque, accedendo al sito, avrebbe visto il messaggio in neretto, per via del post in più!

Come se non bastasse, mi si è aggiunta una spece di pubblicità ebay in testa ai vari post e temevo che chi vi entrasse, vedendo la pubblicità, l'interpretasse come un'anomalia e vi uscisse subito, così mi sono permesso di chiedere in PM al membro del forum che ritengo più simpatico... successivamente ho scoperto che tale paginata pubblicitaria si è inserita un po' in tutti i post!!

Ripeto, chiedo scusa per le rotture, ma temevo non mi rispondesse più nessuno e ho tentato questa strada, per non aprire un altro post...

[at]Livio

Mi spiace di averti urtato con il mio comportamento, non succedrerà più!

Link al commento
Condividi su altri siti

Grazie del suggerimento, appena inoltrata la risposta, torno in google, lo cerco e me lo scarico!!

Chiedo ancora scusa a te e a tutti gli altri, ma ripeto, temevo che ormai rispondesse più nessuno, ma sai com'è per le "cose nuove", può capitare di sbagliare, ma una volta sola però!!! :P

P.S.

Questo we sono impegnato con delle dimostrazioni dei miei "accrocchioli", ma temo ormai, di portarli con il telecomando in versione "succhiabatterie", sono un po' indietro sulla tanella di marcia... da lunedì, però, rimetto il berrettino da programmatore e poi vi dico dei miei risultati!!

Buona giornata a tutti,

Max

Link al commento
Condividi su altri siti

Salve a tutti,

come dicevo nell'ultimo messaggio, oggi ho messo in pratica i vostri consigli:

ho fatto esattamente come suggerito da dlgcom e, naturalmente, funziona tutto alla perfezione!

Ancora grazie!

In realtà, avendo già realizzato lo stampato, ho mantenuto gl'ingressi su Rb0 e Rb1:

per non tagliare le piste, li ho semplicemente messi in parallelo con i loro "dirimpettai" Rb6 e Rb7.

Quindi, per chi come me avesse scelto il quartetto sbagliato di bit, ecco una possibile soluzione...

[at]Livio:

Ho scaricto il corso che mi hai consigliato... moto interessante! Confesso di non averlo ancora letto tutto, ma di spunti ce ne sono tanti...

Per chi invece inizia da zero, mi permetto di consigliare:

http://stor.altervista.org/pic/lmpic01/page1.php

Saluti,

Max

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...