Tema: Re: matematinis-mikroprocesorinis klausimas
Autorius: ejs
Data: 2015-02-04 23:22:08
2015-02-04 22:52, Levas rašė:
> bitu pjaustymas nepadeda.
>
> Nes 4.9999 ir 5.0000 ar 4.9 ir 5.0 mirges, jei persijungines bitai. T.y.
> tik bus zymiai maziau "padeciu" kai mirges visi skaiciai.

nebus tokių išmatuotų reikšmių.

Kadangi nežinau taviškio setup'o, priimam kad matuojam intervalą 0-10 V.
Delta tarp gretimų reikšmių:
  8 bitų - 10/256  = 0,039 ~=0,04;
10 bitų - 10/1024 = 0,0098 ~= 0,01;
12 bitų - 10/4096 = 0,0024 ~= 0,0025;

Sakykim naudoji 10 bitų režimą, LSB bitas nereikšminis (triukšmai ir 
pan) ir jo atsikratai su '>> 1', lieki su 9 reikšminiais bitais ir 0,02 
V žingsniu. Arba, imant 12 bitų - 11 reikšminių bitų ir 0,005 V žingsnis.

Tokiu atveju reikšmę keisčiau, kai abs(displayValue - currentValue) > 2. 
Ir čia viskas prieš level-shift'ą į displėjaus reikšmes.
Galima net įvesti 'pataisą':

  int displayValue = 0;
  int currentValue = read_ADC();
  int diff = currentValue - displayValue;
  if (abs(diff >> 1)) {
    displayValue = currentValue - (diff >> 1)
   }

Ant geležies netikrinau; jei '+' operacija valgo mažiau ciklų nei '-', 
žinosi ką daryti ;)

> Mechaniskai tai gaunasi kaip "liuftas" dantraciuose- sukam skyva kazkiek
> i prieki, poto sukam "laisvai" atgal, kol vel dantraciai ir sriegiai
> susikabina.

baisiai džergždami ;)
-- 
Grammar for Time Travelers:
The term "Future Perfect" has been abandoned since it was discovered not 
to be.