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.