multiplication et division avec PBP

K

klemm

Guest
Bonjour, comment je peux écrire cette formule dans PBP: V = INT (5.0/1024 * volt1 * 1000) Merci Klemm
 
Je ne sais pas grand chose de base, mais il est généralement préférable de décalage à droite que de diviser, surtout quand vous divisez par une puissance de 2. Shifting n'est pas aussi exigeante que la division d'une tâche. 1024 est le même que 2 ^ 10 donc au lieu de la division par 1024, vous devriez décalage à droite 10 fois. Vous devriez aussi faire toutes les multiplications avant la division, afin de minimiser les erreurs d'arrondi. En C, il devrait ressembler à ceci: V = ((5 * 1000 * volt1)>> 10), ou plus simple: V = ((5000 * volt1)>> 10);
 
D'abord je dois dire que je n'en sais rien ... PBP Je suppose que vous voulez calculer la tension d'une valeur mesurée par un DAC 10 bits Pic? Si PBP a un type qui peut au moins tenir 640 000 (qui utilise 3 octets), je le ferais comme ceci: V = (volt1 * 625) / 128 Une division par 128 qui pourrait être fait comme un décalage de la valeur de 7 bits vers la à droite, aucune idée si PBP peut faire cela. Juste un petit message: vous ne serez jamais atteindre la valeur de 5000 comme la valeur maximale que vous recevez de la DAC est de 1023 (ou 0x3FF) ... Cordialement
 
Alors le meilleur moyen serait de faire comme ceci: V = ((625 * volt1)>> 7), ce qui est du langage C. >> 7 Menas décalage à droite 7 fois. Je ne sais pas comment écrire cela en BASIC, mais peut-être vous pouvez comprendre cela vous-même.
 

Welcome to EDABoard.com

Sponsor

Back
Top