multiplicare şi divizare cu pbp

K

klemm

Guest
Salut,

cum pot scrie, în această formulă pbp:

volt = INT (5.0/1024 * volt1 * 1000)

Mulţumesc

Klemm

 
Nu ştiu prea multe despre de bază, dar este de obicei mai mult de trecerea de la dreptul de demarcaţie, în special atunci când te despart de o putere de 2.Schimbarea nu este la fel de dificile ca o sarcină divizare.1024 este identic cu cel de 2 ^ 10 astfel încât în loc de divizare prin 1024, ar trebui să dreptul de trecere de 10 ori.
De asemenea, trebuie să facă tot multiplications, înainte de divizare, de a minimiza erorile de rotunjire.
În C s-ar arata ceva de genul:

volt = ((5 * 1000 * volt1)>> 10);

sau mai simplu:
volt = ((5000 * volt1)>> 10);

 
În primul rând trebuie să vă spun că nu stiu nimic despre PBP ...

Presupun că doriţi să calculeze de tensiune de la o valoare măsurată printr-o 10 biţi Pic DAC??

Dacă are o PBP datatype, care poate deţine cel puţin 640000 (care utilizează 3 bytes) Mi-ar face-o astfel:

volt = (volt1 * 625) / 128

O divizie de 128 s-ar putea face ca o schimbare a valorii 7 biţi la dreapta, nici o idee dacă PBP poate face acest lucru.

Doar un scurt Notă: nu va ajunge la valoarea de 5000 ca valoarea maximă tu a lua de la DAC este 1023 (sau 0x3FF) ...

toate cele bune

 
Apoi, cea mai bună modalitate ar fi de a face astfel:

volt = ((625 * volt1)>> 7);

Acesta este limbajul C.
>> 7 Artă dreptul trecerii de 7 ori.
Nu ştiu cum se scrie în această bază, dar poate te pot figura asta singur.

 

Welcome to EDABoard.com

Sponsor

Back
Top