Ir ao conteúdo

Posts recomendados

Postado

olá. estou fazendo uma programação para pic na qual o pic vai receber um sinal de módulo nec de um receptor infravermelho, e vai realizar determinada função.

para esse processo, estou utilizando preescaler de 1:16 e timer 1 no modo de temporizador. mas ao fazer essas configurações na programação, está dando erro na parte :

"org 0x00

goto inicio"

o erro é: overwriting previous address contents (0000)

não estou sabendo resolver esse pequeno problema.

aqui vão algumas partes da programação relacionadas aos banks do pic e as variáveis criadas:

 

----- variáveis -----

cblock    0x20       
        w_temp           
        status_temp       
        temp1
        temp2
        temp3
        tmr1l_temp
        tmr1h_temp
    
    endc       

       

inicio
    bank1                ;altera para o banco 1
    movlw    b'11111111'
    movwf    trisa        ;define porta como entradas
    movlw    b'00000000'
    movwf    trisb        ;define portb como saídas
    movlw    b'10000100'
    movwf    option_reg    ;define opções de operação prescaler 1:2 no tmr0
                        ;pull-ups desabilitados
                        ;as demais confg. são irrelevantes
    movlw    b'11000000'
    movwf    intcon        ;define opções de interrupções desligadas
    movlw b'00000101'
    movwf pie1

    
bank0        
    movlw    b'11000000'
    movwf    intcon            ;retorna para o banco 0
    movlw    b'00000101'
    movwf    cmcon        ;define o modo de operação do comparador analógico
    movlw b'00000111'
    movwf ccp1con; define preescaler 1:16
    
    movlw b'00110001' ; talvez b'00110101'
    movwf t1con ; define o timer1 como contador 1:8
    bcf t1con, tmr1on
    movf tmr1l,w
    movwf tmr1l_temp
    movf tmr1h,w
    movwf tmr1h_temp
    bsf t1con, tmr1on

Postado

Inicie assim:

 

---- variáveis -----

cblock    0x20       
        w_temp           
        status_temp       
        temp1
        temp2
        temp3
        tmr1l_temp
        tmr1h_temp
    
    endc    

org  0x00
goto inicio

 

Para facilitar os bancos,no inicio do código,defina eles assim:

 

#DEFINE BANK1 	BSF     STATUS,RP0
#DEFINE BANK0 	BCF	STATUS,RP0

Deste modo quando precisar mudar os bancos,apenas digite:

 

	BANK1					; 
	BCF		OPTION_REG,7	        ; Faça o que tenha que fazer
        .....
	BANK0					; Retorna a origem
	....

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!