Livio Orsini Inserita: 28 maggio 2009 Segnala Share Inserita: 28 maggio 2009 ...io pero aggiorno hc0 ogni 100ms ed eseguo la differenza ogni 100ms come rileviamo la differenza di impulsi nel tempo se sono entrambi a 100ms ?Azzarola, Roberto ci sei o ci fai.Allora ripetiamo. 1 Scatta il primo interrupt. Leggo HCO e memorizzo il valore di HC0, p. e., in VD1002 Scatta il secondo interrupt dopo 100ms. Leggo HCO e trasferisco la lettura, p. e., in VD102. Eseguo VD104 = VD102 - VD100. Memorizzo facendo VD100 = VD102.3 al prossimo interrupt ripeto la sequenza 2. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 28 maggio 2009 Autore Segnala Share Inserita: 28 maggio 2009 Memorizzo facendo VD100 = VD102.ah percio non andava! io non ho memorizzato l ultima lettura... !!! chiedo umilmente scusa! ora non ho il pc qui altrimenti provavo subito! ora ho capito dove sbagliavo!! Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 28 maggio 2009 Autore Segnala Share Inserita: 28 maggio 2009 oh ma una cosa cosi facile eppure ancora non funziona! non riesco a capire dove sbaglio!ora addirittura nelle vdxx mi esce il valore e si incrementa e rimane memorizzato il numero anche ad alberino encoder fermo! 1 Scatta il primo interrupt. Leggo HCO e memorizzo il valore di HC0, p. e., in VD1002 Scatta il secondo interrupt dopo 100ms. Leggo HCO e trasferisco la lettura, p. e., in VD102. Eseguo VD104 = VD102 - VD100. Memorizzo facendo VD100 = VD102.3 al prossimo interrupt ripeto la sequenza 2.Al prossimo interrupt ripeto la sequenza 2 come faccio se il programma cicla iniziando dal primo segmento...quindi rilegge la prima sequenza..non capisco ioho fatto cosi...nel int_0 LD SM0.0MOVD HC0, VD100LD SM0.0MOVD HC0, VD104LD SM0.0MOVD VD104, VD108 Eseguo la sottrazione di Vd104 -Vd100-D VD100, VD108LD SM0.0MOVD VD100, VD104nel main invece cè questoLD SM0.1CALL SBR_0:SBR0LD SM0.0CALL SBR_2:SBR2LD SM0.1CALL HSC_INIT:SBR1nella Sbr_2 ho fatto il calcolo della velocita cosiLD SM0.0MOVD VD108, VD112 cioe vd108 diviso 6/D +6, VD112sto facendo una confusione enorme non riesco a venirne a capo! Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 28 maggio 2009 Segnala Share Inserita: 28 maggio 2009 NOOOOO!metti HC0 in VD100 VD104 = VD108-VD100metti VD100 in VD108Esci da INT0. StopNella SBR2 fai la divisione per calcolare la velocità. Se visualizzi VD108 in tempo reale (quando vai in debug) dovresti leggere il numero d'impulsi per 100 ms. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 29 maggio 2009 Autore Segnala Share Inserita: 29 maggio 2009 eccomi ho appena eseguito quello che mi hai scritto ora ho vd 104 che va a 0 appena mi fermo e aumenta quando giro veloce l encoder...nella sbr 2 ho la divisione di vd108 : 6 ma esce un numero fisso che aumenta quando ruoto l encoder e mantiene il numero appena mi fermo...quindi ho usato vd104 : 6 e sembra funzionare bene!! 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