Датчик давления токовой петли 4-20мА, значение от -1 мбар до 1 мбар,?пользователь кода сборки - PullRequest
1 голос
/ 08 сентября 2011

Я программирую рис 18f, чтобы рад сенсора пресса, колебания от + 1 мбар до -1 мбар (4-2 мА)

Все в порядке в этой точке, код, теперь нужно сдвинуть мои 8 битв более читаемый формат.

уравнение для преобразования: Mbar = Vin * 0,5 -1,5, подтверждено.

Как вы можете видеть, 1 вольт -1 мбар, 3 вольт = 0 мбар, 5 вольт = + 1 мбар ,,,,

Кто-нибудь покажет мне, где на это кататься.Пытался расширить уравнение в шестнадцатеричном, затем rlcf и т. Д., Я запутался.

вся помощь / понимание и предложения принимаются с распростертыми объятиями здесь!

Стив

1 Ответ

1 голос
/ 08 сентября 2011

Лучше всего выразить проблему в псевдокоде и затем преобразовать ее в сборку PIC.

// Input value, x, is 8 bit unsigned, 0..255 = 0..5v = 0..20 mA = -1.5..+1.0 mbar
// Output value, y, is 8 bit signed (two's complement), -127..127 = -1..+1 mbar
// Temp value, temp, is 16 bit signed

temp = x - 51;        // subtract 4 mA (= 1V = 0.5 mbar) offset = 255 / 5 = 51
temp = temp * 5;      // scale by 5 / 4 (NB: can do * 5 with 2 bit left shift and add)
temp = temp / 4;      // (NB: can do / 4 with a 2 bit right shift)
temp = temp - 128;    // convert to 8 bit signed
y = temp;             // return 8 bit signed value
...