home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Pic Micro
Tutto quanto riguarda questi microprocessori... progetti, suggerimenti, aiuti, discussioni...ecc


MickroBasic pro,gestione " . " per asse lineare
     
Autore Messaggio opzioni
Jasson





postato il:
04.03.2015, alle ore 18:14
Prova a postare l'intero codice, io ho simulato e il codice sembra funzionare.
sparide74





postato il:
04.03.2015, alle ore 18:32
Aspetta adesso dopo aver cambiato da longword la variabile Cent in Integer e altre operazioni sembra che vada...

ti faccio vedere cosa ho fatto:

codice originale:

   UpDown as longword
         mm as longword
         CentMil as longword
         resto as longword
         cent as integer
         str_mm as string [3]
         str_cent as string[2]
         testo as string[6]

         CentMil=UpDown * 100             'Centomillesimi
         mm=CentMil/10000                 'millimetri
         resto=CentMil mod 10000          'Resto
         cent=resto /10                    'Centesimi

         Longwordtostr(mm,str_mm)
         Lcd_out(1,3,testo)
         Lcd_out(1,6,".")
         longwordtostr(cent,str_cent)
         Lcd_out(1,7,testo) 


questo e' quello modificato:

UpDown as longword
      mm as longword
      CentMil as longword
      resto as longword
      cent as integer
      str_mm as string [2]
      str_cent as string[2]
      testo as string[6]

      CentMil=UpDown * 100             'Centomillesimi
      mm=CentMil/10000                 'millimetri
      resto=CentMil mod 10000          'Resto
      cent=resto /100                    'Centesimi

      Longwordtostr(mm,str_mm)
      Lcd_out(1,3,testo)
      Lcd_out(1,6,".")
      inttostr(cent,str_cent)
      Lcd_out(1,7,testo) 



solo che quando vado all'incontrario dopo lo zero non mi visualizza 1 ma il n°:
496,72
che sarebbe la longword 4294967296
Jasson





postato il:
04.03.2015, alle ore 19:06
Perchè dopo tutta la pappardella che ho scritto, hai dichiarato della variabili longword?

Perchè dopo averti detto che la stringa deve essere lunga almeno quanto la variabile, hai dichiarato delle stringhe di 2 e 3 caratteri?

Perchè dopo aver detto che a 100 impulsi corrispondono 5 millimetri, ha fatto operazioni matematiche completamente diverse?

Cosa vuol dire quando vai all'incontrario?
Devi visualizzare anche numeri negativi?



sparide74





postato il:
04.03.2015, alle ore 19:13
allora, ad esempio quando vado in avanti con la visualiz.e poi ritorno indietro verso lo zero, dopo po zero che sarebbe negativo ma ancora senza segno inizia il conteggio down da 496,72

ma tu il codice lo provi solo con il debugger di mikrobasik?
Jasson





postato il:
04.03.2015, alle ore 19:17
Ma quando passi lo zero tornando indietro, la tua variabile che conta gli impulsi, diventa negativa?
sparide74





postato il:
04.03.2015, alle ore 19:20
questo era quello originale, non avevo messo su longword su cent

 UpDown as longword
         mm as longword
         CentMil as longword
         resto as longword
         cent as longword
         str_mm as string [3]
         str_cent as string[2]
         testo as string[6]

         CentMil=UpDown * 100             'Centomillesimi
         mm=CentMil/10000                 'millimetri
         resto=CentMil mod 10000          'Resto
         cent=resto /10                    'Centesimi

         Longwordtostr(mm,str_mm)
         Lcd_out(1,3,testo)
         Lcd_out(1,6,".")
         longwordtostr(cent,str_cent)
         Lcd_out(1,7,testo)  
sparide74





postato il:
04.03.2015, alle ore 19:20
no non diventa negativa
sparide74





postato il:
04.03.2015, alle ore 19:23
forse ce qualche cosa da sistemare ancora...
Jasson





postato il:
04.03.2015, alle ore 19:24
e allora cosa significa quando passi lo zero?
se rimane sempre positiva, tornando indietro si deve fermare a 0.
Cosa significa quando passi lo zero?

Tornare indietro, e passare lo zero, a casa mia vuol dire andare nei numerinegativi.





sparide74





postato il:
04.03.2015, alle ore 19:34

ad esempio sono a zero....ruoto l'encoder indietro , il primo numero che dovrebbe comparire sarebbe -1, invece mi compare 496,72 .E da questo numero inizia il conto alla rovescia
segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale