Vai al contenuto
PLC Forum


Ciclo Infinito - ciclo infinito


stefano_

Messaggi consigliati

salve a tutti,

ho realizzato un programma con proton+ compiler ver. 2.1.3,

il mio problema è che ho un ciclo che si ripete allinfinito

attraverso il quale gestisco 4 display a 7 segmenti multiplexandoli

con un intervallo di 5ms.

Il problema è che in un determinato caso avrei bisogno di attivare un uscita

per 2 secondi per poi disattivarla senza però interrompere il "multiplexing" dei display

( perdonatemi il termine ).

C'è una soluzione ???

proton mi da la possibilita ( anche se non ne sono molto capaca ) di scrivere anche in assembler, se può

servire per risolvere questo problema ben venga !!

Grazie a tutti

Link al commento
Condividi su altri siti


Non conosco proton e non dici niente circa le uscite. Con qualsiasi microcontrollore di mia conoscenza il problema si risolve facilmente. Quando hai le condizioni per atttivare l'uscita chiami una sub o una function che attiva l'uscita e carica un timer al tempo desiderato (2"), poi esce dalla sub o dalla funct. Allo scadere del timer chiami un'altra function o dub che disattiva l'uscita. Il timer lo verifichi in polling oppure lo leghi ad un interrupt

Link al commento
Condividi su altri siti

Ho paura che ti manchino un po' di conosicenze di base.

Comunque un interrupt, solitamente è un evento legato ad una condizione di un segnale: una linea di ingresso, una periferica (tipo un timer). All'acadere dell'evento il programma s'interrompe ed esegue la routine legata all'interrupt.

Non è semplice ne facile spiegarlo in due righe di post. Dovresti leggerti qualche cosa sui manuali dei processori chestai usando.

Link al commento
Condividi su altri siti

Io non uso il basic, ma ti potrei consigliare di fare il contrario.

Userei un interrupt di un timer per fare il multiplex del display e di usare il ciclo principale per fare tutte le altre cose .

Link al commento
Condividi su altri siti

Mi aggiungo con una terza considerazione... si puo' fare tutto anche senza interrupt, a patto di avere una frequenza precisa a cui agganciarsi con l'elaborazione, questa puo' essere per esempio il bit di overflow del timer, o una frequenza esterna in arrivo su un pin. Il programma attende il fronte di salita (o di discesa), poi richiama tutte le routines, ed infine si rimette in attesa di un nuovo fronte (o di un nuovo overflow del timer). Queste routines vengono cosi' richiamate periodicamente ad intervalli precisi, per esempio di 5mS, una puo' occuparsi di comandare il display, l'altra di conteggiare 2 secondi (pari a 400 chiamate) ecc.

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...