-Barrett- Inserito: 15 aprile 2008 Segnala Share Inserito: 15 aprile 2008 Devo trasformare, per un caricatore di pallettini, un numero dato da una T in esadecimale ( es T12 caricata poi nella var. #20 ) e trasformala in un segnale pulsante. Per far questo il numero deve essere convertito in binario ( in questo caso il 12 in 1100 ). Ora devo scansionare questo numero binario bit per bit, dando un codice M102 quando il bit è a livello, e M101 quando il valore è 1. Dopo questi codici M ci vuole un segnale di clock M103.Questo è quello che ho capito dal riassunto di un programma datomi da un collega. Non si sa se funziona.Chi mi spiega che vuol dire il comando ROUND, GE, ma soprattutto come fanno a lavorare le righe finali #102 = #102- 1 ( DECREMENT ADDRESS COUNTER ) #101 = #101*2 ( INCREMENT BIT MASK, SHIFT LEFT ) ?#100=ROUND[#9]#101=ROUND[#20]#102=14 (INITIALIZE MAGAZINE ADDRESS BIT COUNTER )#101=1 (BIT MASK)N300 (LOOP START)IF [#100 EQ 0] GOTO 400 ( NO NEED TO SEND 0 BITS)IF [[#100 AND #101] EQ 0] GOTO 310 ( DATA BIT 0)M101 (PULSE SET BIT)#100 = #100- #101 ( REMOVE BIT FROM ADDRESS)GOTO 320N310 M102 ( PULSE RESET BIT)N320M103 (PULSE CLOCK )G04X0.05 (DWELL 50MS)#102 = #102- 1 ( DECREMENT ADDRESS COUNTER )#101 = #101*2 ( INCREMENT BIT MASK, SHIFT LEFT )IF [102 GE 1] GOTO 300 ( LOOP IF NOT DONE)ECC.. EC.. Link al commento Condividi su altri siti More sharing options...
lucios Inserita: 5 maggio 2008 Segnala Share Inserita: 5 maggio 2008 Dunque, non sono un programmatore ISO quindi faccio un po fatica ad analizzare l'esempio, comunque posso dirti che:L'istruzione ROUND, come dice la parola, arrotonda alla prima cifra decimale. #102 = #102- 1 decrementa di 1 #102 ad ogni passaggio, quindi l'intenzione è di fare il loop 14 volte.#101 = #101*2 è un modo "classico" per effettuare uno shift-right. Moltiplicando per 2 un numero ottieni infatti l'effetto di shiftare a destra i bit.Ad es. se scrivi 1 in una word, moltiplicando per 2 più volte otterrai:12481632ecc..quindi "sposti" a destra il bit nella word.Ciao Link al commento Condividi su altri siti More sharing options...
cisio Inserita: 5 maggio 2008 Segnala Share Inserita: 5 maggio 2008 Scusa Lucios, vabbè che ormai la sinistra non esiste più, ma questo è uno shift LEFT ciao Link al commento Condividi su altri siti More sharing options...
lucios Inserita: 5 maggio 2008 Segnala Share Inserita: 5 maggio 2008 Ops! Hai ragione! Comunque, a parte la confusione della definizione(sto invecchiando , il concetto è corretto.Ciao Link al commento Condividi su altri siti More sharing options...
-Barrett- Inserita: 30 maggio 2008 Autore Segnala Share Inserita: 30 maggio 2008 Grazie Lucios !Ora mi è più chiaro il passaggio della moltiplica per 2.Ciao Link al commento Condividi su altri siti More sharing options...
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