D
daniel2004
Guest
Привет я немой вопрос, я думаю, что я что-то очень отсутствуют основные здесь.
Я наклоняю кажется, что получить TMR0 к приросту MPLAB, и я не думаю, что она работает в ПОС либо.Сначала я настройка Option_Reg и установить T0CS, с тем чтобы включить таймер Off.Когда я хочу таймер для подсчета я четко T0CS поэтому таймера будет прирост от внутренних часов.Это dosnt произойдет.По моим чтением Data Sheet Таймер должна прирост в этом режиме, ни на что.Я проверил в MPLAB, что все биты определены и очищены, как они должны быть, по-прежнему не везет.Я надеюсь, кто-то здесь могли бы пролить некоторый свет на это.
Спасибо
Даниэль
# определить процессор 16F84A
LIST P = 16F84A;, F = INHX8M
# включить <P16F84A.inc>
__CONFIG _CP_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC;************************************************* ***********
, Память приравнивает
;************************************************* ***********
W_Temp EQU 0x20
STATUS_Temp EQU 0x21
Задержки EQU 0x22
;************************************************* ***********
; Сброс и векторы прерываний
ORG 0x0000; Сбросить Векторная
GOTO Начало
ORG 0x0004; вектор прерывания
GOTO IntVector
;************************************************* ***********
, Программа начинается здесь
ORG 0x005
Начало
BSF STATUS, RP0
MOVLW h'FF '
MOVWF TRISA
CLRF TRISB
BSF TRISB, 7
BSF TRISB, 6
BSF OPTION_REG, T0CS; Timer0 не работает
BSF OPTION_REG, T0SE; Rising край
КБК OPTION_REG, СРП; использовать для tmr0 предделитель
BSF OPTION_REG, PS2 Максимально предделитель
BSF OPTION_REG, PS1
BSF OPTION_REG, PS0
CLRF INTCON; Начало свежие
КБК INTCON, T0IE; Включите прерывания TMR0
КБК INTCON, T0IF; Открытый TMR0 флаг
BCF STATUS, RP0; Bank0
CLRF TMR0
BSF INTCON, GIE
Главное GOTO
Главный
; BTFSS PORTA, 1
; GOTO Главные
CLRF PORTB
BSF PORTB, 0
BSF STATUS, RP0
КБК OPTION_REG, T0CS; Начало TMR0
BCF STATUS, RP0
MOVF Delay, W
SUBLW d'76 '
BTFSS STATUS, Z
GOTO
BSF STATUS, RP0
BSF OPTION_REG, T0CS; Остановка TMR0
BCF STATUS, RP0
CLRF TMR0
BSF PORTB, 1
; GOTO Главные
Main_a
GOTO Main_a
IntVector
BSF PORTB, 3
MOVWF W_Temp; Копия З TEMP зарегистрироваться
SWAPF STATUS, W; Swap статус сохраняется в W
CLRF СТАТУС; Банк 0, независимо от текущего банка, очищает ПИВТ RP1, RP0
MOVWF STATUS_Temp, сохранять статус банка нуля STATUS_TEMP зарегистрироваться
Задержки INCF
CLRF TMR0
КБК INTCON, T0IF
SWAPF STATUS_Temp, W; Swap STATUS_TEMP регистра в W
; (устанавливает банк исходное состояние)
MOVWF СТАТУС; Переместить W в регистр состояния
SWAPF W_Temp, F; Swap W_TEMP
SWAPF W_Temp, W; Swap W_TEMP в W
RETFIE
конец
Я наклоняю кажется, что получить TMR0 к приросту MPLAB, и я не думаю, что она работает в ПОС либо.Сначала я настройка Option_Reg и установить T0CS, с тем чтобы включить таймер Off.Когда я хочу таймер для подсчета я четко T0CS поэтому таймера будет прирост от внутренних часов.Это dosnt произойдет.По моим чтением Data Sheet Таймер должна прирост в этом режиме, ни на что.Я проверил в MPLAB, что все биты определены и очищены, как они должны быть, по-прежнему не везет.Я надеюсь, кто-то здесь могли бы пролить некоторый свет на это.
Спасибо
Даниэль
# определить процессор 16F84A
LIST P = 16F84A;, F = INHX8M
# включить <P16F84A.inc>
__CONFIG _CP_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC;************************************************* ***********
, Память приравнивает
;************************************************* ***********
W_Temp EQU 0x20
STATUS_Temp EQU 0x21
Задержки EQU 0x22
;************************************************* ***********
; Сброс и векторы прерываний
ORG 0x0000; Сбросить Векторная
GOTO Начало
ORG 0x0004; вектор прерывания
GOTO IntVector
;************************************************* ***********
, Программа начинается здесь
ORG 0x005
Начало
BSF STATUS, RP0
MOVLW h'FF '
MOVWF TRISA
CLRF TRISB
BSF TRISB, 7
BSF TRISB, 6
BSF OPTION_REG, T0CS; Timer0 не работает
BSF OPTION_REG, T0SE; Rising край
КБК OPTION_REG, СРП; использовать для tmr0 предделитель
BSF OPTION_REG, PS2 Максимально предделитель
BSF OPTION_REG, PS1
BSF OPTION_REG, PS0
CLRF INTCON; Начало свежие
КБК INTCON, T0IE; Включите прерывания TMR0
КБК INTCON, T0IF; Открытый TMR0 флаг
BCF STATUS, RP0; Bank0
CLRF TMR0
BSF INTCON, GIE
Главное GOTO
Главный
; BTFSS PORTA, 1
; GOTO Главные
CLRF PORTB
BSF PORTB, 0
BSF STATUS, RP0
КБК OPTION_REG, T0CS; Начало TMR0
BCF STATUS, RP0
MOVF Delay, W
SUBLW d'76 '
BTFSS STATUS, Z
GOTO
BSF STATUS, RP0
BSF OPTION_REG, T0CS; Остановка TMR0
BCF STATUS, RP0
CLRF TMR0
BSF PORTB, 1
; GOTO Главные
Main_a
GOTO Main_a
IntVector
BSF PORTB, 3
MOVWF W_Temp; Копия З TEMP зарегистрироваться
SWAPF STATUS, W; Swap статус сохраняется в W
CLRF СТАТУС; Банк 0, независимо от текущего банка, очищает ПИВТ RP1, RP0
MOVWF STATUS_Temp, сохранять статус банка нуля STATUS_TEMP зарегистрироваться
Задержки INCF
CLRF TMR0
КБК INTCON, T0IF
SWAPF STATUS_Temp, W; Swap STATUS_TEMP регистра в W
; (устанавливает банк исходное состояние)
MOVWF СТАТУС; Переместить W в регистр состояния
SWAPF W_Temp, F; Swap W_TEMP
SWAPF W_Temp, W; Swap W_TEMP в W
RETFIE
конец