drugo66 Inserito: 25 febbraio 2006 Segnala Inserito: 25 febbraio 2006 Salve a tutti,con MicroWin 4.0 ho scritto una SBR che, dato un ingresso di controllo Set/Reset, pilota una uscita verificando l'ingresso con tempi diversi per il Set e il Reset. Per fare ciò ho usato il timer generale da 1 mS, che però per l'inizializzazione necessita della verifica del fronte di salita (o discesa) dell'ingresso: ebbene se l'istruzione EU (o ED) la utilizzo all'interno dell'SBR e chiamo più volte l'SBR, il tutto non funziona; se invece come parametro alla routine passo, oltre all'ingresso stesso, sia il fronte di salita che quello di discesa, la routine funziona benissimo. Ho fatto parecchie prove: a prescindere di quello che fa la routine, se uso i fronti o comunque se faccio in modo che quella riga sia eseguita solo per una scansione (LD L0.0 UN L0.1 MOVW 0, VW10, S L0.1, 1), la routine funziona solo se la chiamo una volta sola: se la chiamo più di una volta non esegue più il suo compito.Chi mi spiega perchè ?GrazieDrugo
ale1979 Inserita: 25 febbraio 2006 Segnala Inserita: 25 febbraio 2006 Ciao, non ho capito bene cosa vuoi fare, però genericamenteun sbr richiamato non esegue l'operazione se il tempo di richiamo è più breve del tempo di esecuzione della routine stessa.Ciao!!!!!!
drugo66 Inserita: 25 febbraio 2006 Autore Segnala Inserita: 25 febbraio 2006 All'interno di una sub se io scrivo:LD L0.0EUS L0.1, 1LD L0.1EUR L0.1, 1e poi la chiamo una volta sola, la routine funziona; se invece la chiamata è doppia con parametri diversi la routine non funziona più. Se invece nella routine scrivo:LD L0.0S L0.1, 1LD L0.1R L0.1, 1e solo nella chiamata aggiungo la lettura del fronte, anche con più chiamate la routine funziona.Mi sono chiesto il perchè .....Quello che devo fare è utilizzare all'interno di una sub l'inizializzazione al timer di sistema di 1 mS: per farlo ho dovuto aggiungere per forza un parametro per mettere esternamente alla routine la lettura del fronti.Spero di essermi spiegato.Drugo
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora