adamo Inserito: 3 agosto 2004 Segnala Inserito: 3 agosto 2004 Salve amici attendendo le ferie sto cercando di scrivere un programmino che con il pannellino dt200alla pressione dei tasti funzione con il comando call inserito nella obi (uno per ogni tasto funzione )mi richiama i vari sottoprogrammi ,funziona tutto egregiamente ma soltanto alla prima pressione dei tasti funzione se voglio ripremere nuovamente lo stesso tasto funzione non c'e' piu' il famoso call che prima funzionava,la domanda e' questa :come faccio a far capire al sottoprogramma che alla fine di aver visualizzato sul dt200 e anche magari aver fatto modificare un qualcosa (un uscita ad esempio) mi setti dinuovo il tasto funzione in modo che alla prossima pressione del detto tasto mi riproponga la stessa situzione,ho provato a far richiamare dal sottoprogramma l'Ob1 con la funzione call ma non e' possibile farlo...come faccio , mi date una mano ??
Gianmario Pedrani Inserita: 3 agosto 2004 Segnala Inserita: 3 agosto 2004 Ha ogni fine funzione hai resettato il bit che ti richiama la funzione???? se non lo resetti funziona tutti ma solo una volta!!!! Quando la tua funzione finisce di fare quello per cui e stata progettata deve resettare il bit che la chiamata in modo che alla prossima pressione del tasto funzione tutti riparte!!!! ciao
dago_ Inserita: 3 agosto 2004 Segnala Inserita: 3 agosto 2004 Premetto di non conoscere abbastanza bene il Microwin e probabilmente di non aver capito il problema.Se a esempio nell' assistente TD200 hai riservato il byte 0 ai tasti funzione (da M0.0 a M0.7) , prova ad azzerare il byte dopo aver eseguito la funzione.Piu o meno in questo modo:LDB<> MB0, 0MOVB 0, MB0In ogni caso penso che il problema sia la memoria, associata al tasto, che rimane "attiva" anche dopo aver rilasciato il tasto.
walterword Inserita: 3 agosto 2004 Segnala Inserita: 3 agosto 2004 confermo quello che dice gianmariouna volta eseguite le operazioni , tenendo in considerazione lo stato di un bit , devi resettare quest'ultimo ciao walter
adamo Inserita: 3 agosto 2004 Autore Segnala Inserita: 3 agosto 2004 Lasciatemi dire innanzitutto che questo forum e' frequentato da persone squisite sempre disponibili a risolvere problemi a persone che come me si trovano in difficolta' ,grazie e ancora grazie.Dopo questa premessa ho pensato (speriamo bene ) di farvi vedere il mio programmino di esempio, che io ho soprannominato il super-programma proprio per la sua mole OB1 M2.0 V 14.5 in questo caso io ho resettato v 34.1 ??? --| |------( ) perche' il programma funziona comunque M0.0 solo la prima volta ???? --| |--- CALL F1F1 (SOTTOPROGRAMMA) SM3.0 V 14.7---| |-------( S ) V 34.1 Q0.1---| |-------( ) | | M2.0 |----( ) | | V 14.7 |----( R )
Lucky67 Inserita: 3 agosto 2004 Segnala Inserita: 3 agosto 2004 M0.0 e i merker associati ai tasti funzione rimangono sempre attivi quando viene premuto il tasto stesso (come l'interruttore di una lampadina di casa). Devi resettare il merker stesso ogni volta che lo utilizzi.Ad esempio all'interno della sub routine chiamata dal tasto funzione puoi mettere RES M0.0,1.Un' alternativa può anche essere quella di resettare ad ogni scansione del programma (quindi magari prima della funzione END) tutti i merker associati ai tasti funzione (RES M0.0,7).
adamo Inserita: 5 agosto 2004 Autore Segnala Inserita: 5 agosto 2004 Grazie lacky67 sempre gentilissimo, purtroppo sai che sono alle prime armi, e qundi ho provato il tuo consiglio ma prima di un Reset non ci vuole un Set ?? esiste un contatto con la funzione set/reset ??
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