Página 1 de 1

P16F876 NÃO EXECUTA INSTRUÇÃO

MensagemEnviado: 21 Jul 2007 22:35
por sgcavalcante
Estou utilizando um pic 16f876, e as instruções que coloco no loop principal do software são executadas apenas quando inicio o pic, gostaria de saber se alguem tem alguma dica, segue abaixo o fonte do loop principal;

SETOR DE INTERRUPÇÃO

SETOR DE SUBROTINAS

SETOR DE CONFIGURAÇÃO DO PIC

; SETOR DO LOOP_PRINCIPAL
LOOP_PRINCIPAL BANK0
MOVF VALOR_REF,W
SUBWF CONV_AD,W
BTFSS STATUS,C
GOTO SAIDA1_ON
SAIDA1_OFF BCF PORTB,5
GOTO LOOP_PRINCIPAL
SAIDA1_ON BSF PORTB,5
GOTO LOOP_PRINCIPAL
END

MensagemEnviado: 22 Jul 2007 06:14
por MOR_AL
Olá sgcavalcante.

O loop principal parece ok.

Como está o seu SETOR DE CONFIGURAÇÃO DO PIC ?

Pode ser o Whatchdog em on.

Provavelmente sua variável CONV_AD está sendo alterada no SETOR DE INTERRUPÇÃO. No SETOR DO LOOP_PRINCIPAL deve ter uma parte (antes das instruções apresentadas) que configura alguma coisa para gerar interrupção. Caso não haja, sua variável CONV_AD não será alterada e o programa ficará alterando PORTB,5 sempre com o mesmo valor (um ou zero), parecendo que não está sendo alterada a PORTB,5.

Outra coisa.

Você está atualizando a PORTB, 5 a uma taxa máxima. Não deveria aguardar um pouco para atualizar? Ou não deveria esperar que uma conversão AD alterasse a variável CONV_AD? Se a PORTB,5 contiver um led, talvez não dê para perceber as alterações.


MOR_AL

MensagemEnviado: 25 Jul 2007 12:12
por Nik
Tive uns problemas com o 16F876. Uma firmware que usava blz no 873, tentei gravar no 876 e dava tudo errado, não conseguia ler e atualizar direito a eeprom, entre outras coisas. Me disseram que pode ser PIC Pirata, ou de lote refugado. Alguém já ouviu algo a respeito?

MensagemEnviado: 25 Jul 2007 18:53
por zielpunkt
Fica impossível opinar sem conhecer as demais rotinas, ok. Pode ser um porrilhão de coisas, e entre elas as idas/retornos para/dos bancos de memória, de forma incorreta, o que faz o programa se perder.

É isso.

MensagemEnviado: 25 Jul 2007 19:35
por tcpipchip
Como estao configuradas os registradores TRISx?