Как превратить персональный компьютер в измерительный комплекс | страница 44
220 D=INT(1000*D)/1000
240 PRINT USING "##.###"; D
Не стоит также упускать из виду, что драйвер не выполняет никаких округлений, полностью соблюдая точность преобразователя. Только прикладная программа в соответствии с поставленной задачей должна так или иначе использовать получаемую точность, и не более того. Вывод трех знаков после запятой для 8-разрядного АЦП будет излишним, так как третий знак при этом не несет никакого смысла.
200 REM — BARRE —
210 LOCATE 6,1
220 FOR H=1 TO 5
230 PRINT "I….!..";
240 NEXT H
250 PRINT " I "
260 LOCATE 7,1
270 PRINT "0___1___2___"
280 PRINT "3___4___5"
290 GOSUB 100
300 D=INT(10*D)
310 LOCATE 5,1
320 PRINT SPC (D);" I";
330 PRINT SPC (50-D)
340 GOTO 290
350 REM (c) 1997 Patrick GUEULLE
Программа BARRE.BAS, в свою очередь, показывает, как легко можно организовать вывод аналоговой штриховой шкалы.
Эта форма представления результата, менее точная, чем цифровая индикация, гораздо более удобна, когда требуется лишь оценить направление и скорость изменений или отклонений измеряемой величины, например, при ручной регулировке или настройке. В приведенном примере шкала построена на базе ASCII символов, но такая же шкала может быть выполнена и в графическом режиме экрана.
Усредняющий фильтр
Наиболее распространенный способ подавления быстрых флуктуаций (часто паразитных) в медленно изменяющемся сигнале состоит в вычислении среднего значения нескольких выборок, относящихся к одному интервалу дискретизации. Конечно, этот способ может замедлить работу системы, и поэтому он применен в двух программах, выводящих результат один раз в секунду (SECONDE.BAS) и один раз в минуту (MINUTE.BAS).
200 REM — SECONDE —
210 Q=0: S=0: GOSUB 100
220 LOCATE 5,1
230 PRINT "Идет измерение…"
240 H$=TIME$
250 IF H$<>TIME$ THEN BEEP: GOTO 290
260 GOSUB 100
270 S=S+D: Q=Q+1
280 GOTO 250
290 D=INT(100*S/Q)/100
300 LOCATE 1,1
310 PRINT USING "##.##";D;
320 PRINT "(среднее за"; Q; " измерений)"
330 GOTO 210
340 REM (c) 1997 Patrick GUEULLE
Кроме вычисления результата измерений, каждая из этих программ выводит и количество измерений, которое было использовано при его вычислении. Это позволяет точно оценить реальное быстродействие сиcтемы в зависимости от применяемого ПК Так, можно получить 3–4 измерения в секунду на «антикварном» ПК 8088/4,77 МГц, 60–70 измерений в секунду на 386SX25 и 700-1000 измерений в секунду на 486 DX/133 МГц, что все же достаточно далеко от современных скоростей, но весьма почетно для BASIC-интерпретатора.