Добрый день.
Собрал устройство, все работает на УРА.
Проблема в том что он расчитан на 4х цилиндровый двс, а у меня 6х цилиндровый.
Так как на 6х идет 3 - импульса на оборот, а у 4х 2 - импульса на оборот.
Помогите пожалуйста кто может переписать программу для 6х цилиндроового двс.
Желательно чтобы отключался после 500 оборотов.
;***************************************************************************
MAIN:
MOVLW B'11111111' ; установим выходные защёлки
MOVWF PORTB ; порта А и порта В
MOVLW B'00010000' ; в начальное состояние
MOVWF PORTA ;
; Настройка портов и таймера
BSF STATUS, RP0 ; установим страницу 1 памяти данных
MOVLW B'00010000' ; RA<0:3> - выход, RA<4> - вход
MOVWF TRISA ; запишем из регистра W в TRISA
MOVLW B'11111111' ; все выводы RB - вход
MOVWF TRISB ; запишем из регистра W в TRISB
MOVLW B'00111000' ; делитель к WDT, внеш.сигн.-отриц.фронт,R-подкл.
MOVWF OPTION_REG ; запишем байт настройки в регистр OPTION
BCF STATUS, RP0 ; установим страницу 0 памяти данных
CLRF INTCON ; Выключить все прерывания
***************************************************************************
инициализация счетчика импульсов тахометра
CLRF THM ; Очистить регистр
bcf INTCON, T0IF ; сброс флага переполнения TMR0
clrf TMR0 ; очистим TMR0, занесём в него
MOVLW h'fb' ; число FB, для переполнения
MOVWF TMR0 ; через 3 импульсa (360 об/мин)
call DELAY_LONG ; задержка 0,25с(во время которой происходит измерение)
BTFSS INTCON, T0IF ; флаг переполнения TMR0 выставлен?
GOTO m0 ; нет, переход на метку
comf THM, F ; да, инвертируем содержимое регистра
***************************************************************************