Цифровой фильтр
При проектировании цифровых устрой часто возникает необходимость пропускать на
входах сигналы только если они превышают определенную длительность. Это может
относиться к любому фронту сигнала. Для этого можно использовать так называемые
цифровые фильтры в которых вы можете задать длительность выше которой может
формироваться управляющий сигнал в программе.
Пример программы на ассемблере для
PIC16 с учетом нахождения переменной zad_DPT в "другом" банке
памяти!.
zad_DPT
; переменная формирующая задержку сигнала
#define DPT
PORTB,6 ; физический порт
#define temp_DPT flag_6,0
; бит предыдущего состояния
#define DACH_DPT flag_6,1 ; бит
используемый в работе программы
ЭТОТ КУСОК НАДО ПОМЕСТИТЬ В ЦИКЛЕ ПРОГРАММЫ ИЛИ ЦИКЛЕ РАБОТЫ
ТАЙМЕРА (ПРЕРЫВАНИЯ) ДЛЯ ФОРМИРОВАНИЯ ДЛИТЕЛЬНОСТЕЙ ЗАДЕРЖКИ.
; Цифровой фильтр
;========================================
btfsc DPT
; контроль входного состояния
goto $+.19
;
btfss
temp_DPT
;
goto $+.8
;
movlw .20
; задержка на
формирования "0"
banksel
zad_DPT
;
movwf
zad_DPT
;
banksel ind_1
;
bcf
temp_DPT
;
banksel zad_DPT
;
movf
zad_DPT,f
;
banksel ind_1
;
BNZ $+2
;
bcf
DACH_DPT
; сигнал "0"
goto $+.18
;
btfsc
temp_DPT ;
goto $+.8
;
movlw .20
; задержка на формирования "1"
banksel zad_DPT
;
movwf zad_DPT
;
banksel ind_1
;
bsf temp_DPT
;
banksel zad_DPT
;
movf
zad_DPT,f
;
banksel ind_1
;
BNZ $+2
;
bsf
DACH_DPT
; сигнал "1"
;========================================
В зависимости от того в каких циклах будет находиться это фильтр можно
говорить о формируемых длительностях. принцип работы прост - на выходе
фильтра появится сигнал если его длительность превысит заданную, и он
пропадет если выполнится аналогичное условие. Таким фильтром можно
избавиться от любых нежелательных помех.
Для получения дополнительной информации используйте:
MAGETEX
Ukraine
Телефон: +380-50-575-98-63
Факс: +380-50-575-98-63
Интернет:
invent-systems@ya.ru
|