Невозможно увеличить регистр во встроенной системе - PullRequest
0 голосов
/ 07 февраля 2012

Рассматриваемая встроенная система - это PIC 16F877, и я пытаюсь увеличить регистр PORTC с помощью incfsz, но он остается равным 0. В руководстве говорится, что это возможно, но я не могу заставить его работать.

list p=16f877
include "p16f877.inc"

__CONFIG    _CP_OFF & _CPD_OFF & _LVP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _XT_OSC


org 0x000           ; Start at the reset vector
nop                 ; Reserved for ICD in debu mode

Init
banksel PORTC
clrf    PORTC       ; Clear PORTC initially


; Set up the Timer0 control register

banksel OPTION_REG
movlw   B'10000111' ; Internal clock, prescaler assigned to Timer0
movwf   OPTION_REG  ; prescaler, 1:256

clrf    TRISC       ; PORTC all output  

banksel PORTC       ; Back to Bank 0

movlw   B'00000000'
Main

; Timer0 delay for acquisition


btfss   INTCON,T0IF ; Loop until T0IF = 1 (TMR0 rollover)
goto    Main
bcf     INTCON,T0IF
incfsz  PORTC , F  
goto Main


LoopWhilePushed         ; Loop if PORTB<0> = 0 (pressed)

btfss   PORTB,0
goto    LoopWhilePushed

goto    Main        ; Do it again

end

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Таблица проверки скважины:

При включении периферийных функций следует соблюдать осторожность при определении битов TRIS для каждого контакта PORTC.Некоторые периферийные устройства переопределяют бит TRIS, чтобы сделать вывод выводом, а другие периферийные устройства переопределяют бит TRIS, чтобы сделать вывод вводом.

Поэтому сначала убедитесь, что все периферийные функции на PORTC отключены!

Чтобы узнать, какой вывод переопределен для ввода, используйте отладчик incurcuit!

0 голосов
/ 07 февраля 2012

Как новичок, я не могу этого сделать, поэтому я отказался от PORTC и определил константу, увеличил ее и переместил этот РАБОЧИЙ регулятор в portc и получил те же результаты.Да, я лодырь

ОБНОВЛЕНИЕ: Как выяснилось, это была небольшая аппаратная ошибка, которая позволила всем остальным экспериментам функционировать, но помешала этому.Он не был обнаружен до тех пор, пока цепь не была перемотана, несмотря на это.

...