nhân và chia với pbp

K

klemm

Guest
Xin chào,

làm thế nào tôi có thể viết công thức này tại pbp:

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

Cảm ơn

Klemm

 
Tôi không biết nhiều về cơ bản, nhưng nó thường là tốt hơn để phân chia quyền thay đổi hơn, nhất là khi bạn chia cho một sức mạnh của 2.Chuyển dịch không phải là đòi hỏi một nhiệm vụ là phân chia.1024 là giống như 2 ^ 10 vì vậy, thay vì phân chia bởi 1.024 bạn phải nên thay đổi 10 lần.
Bạn cũng nên làm tất cả các phép nhân trước khi chia, để giảm thiểu sai sót làm tròn.
Trong C nó sẽ giống như thế này:

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

hoặc đơn giản:
volt = ((5000 * volt1)>> 10);

 
Lần đầu tiên tôi phải nói rằng tôi biết gì về PBP ...

Tôi giả sử bạn muốn tính toán điện áp từ một giá trị đo bằng một Pic DAC 10 bit?

Nếu PBP có một datatype có thể giữ ít nhất là 640000 (có sử dụng 3 byte) tôi sẽ làm nó như thế này:

volt = (volt1 * 625) / 128

Một bộ phận của 128 có thể được thực hiện như một sự thay đổi của giá trị 7 bit ở bên phải, không có ý tưởng nếu PBP có thể làm điều này.

Chỉ cần một lưu ý ngắn: bạn sẽ không bao giờ đạt giá trị 5.000 làm giá trị tối đa mà bạn nhận được từ các DAC là 1023 (hoặc 0x3FF) ...

lời chúc mừng tốt đẹp nhất

 
Có PBP hỗ trợ SHIFT tham khảo hướng dẫn sử dụng.
Tornado

 
Sau đó, cách tốt nhất là nên làm như thế này:

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

Đây là ngôn ngữ C.
>> 7 menas quyền thay đổi 7 lần.
Tôi không biết làm thế nào để viết này trong BASIC, nhưng có lẽ bạn có thể con số này ra khỏi chính mình.

 

Welcome to EDABoard.com

Sponsor

Back
Top