Página 1 de 1

[RESOLVIDO] - PIC12F629 nao le o pino GP0

MensagemEnviado: 16 Dez 2013 16:47
por fmaesso
Olá a todos!
É a primeira vez que uso PIC e tô apanhando. Pus o PIC para ler o pino GP0 e quando ele mudar de estado deveria mudar o estado dos pinos GP2 e GP4. A tensão no GP0 é de 4V quando inativo e 0 quando ativo. A alimentação é de 5V. A verificação está dentro do loop, mas não consigo fazer o pino sentir a mudança de baixo para alto. Ele sempre vê como se o pino estivesse em zero. Pus o GP1 para rastrear o funcionamento.


cpp code
void main(void){
TRISIO = 0b001001;
OPTION_REG = 0b00000000;
CMCON = 0x00;
INTCON |= 0xA8;
OPTION_REG |= 0x06;

for(;;){
if(GP0 == 0){
V++;
GP1 = V & 0x01;
__delay_ms(200);
GP2 = 1;
GP4 = 0
}else{
GP1 = 0;
GP2 = 0;
GP4 = 1;
}
}
}


Pode ser que o nivel de 4V na pino não seja suficiente? Tem que setar mais alguma coisa pra ler? tem que ler o pino de outra forma? Os exemplos que vi, fazem a leitura direta do pino! Tô usando o MPLAB X com o compilador X8.

Obrigado!

Re: PIC12F629 nao le o pino GP0

MensagemEnviado: 16 Dez 2013 18:11
por andre_luis
Pra saber se o problema está na entrada ou saída, compila setando e ressetando incondicionalmente essas saídas 2 e 4.


+++

Re: PIC12F629 nao le o pino GP0

MensagemEnviado: 16 Dez 2013 19:23
por fmaesso
Olá André!
Valeu cara! Troquei o GP0 por uma variavel e fixei o valor, compilei 2 vezes uma com a variavel em 0 e outra em 1, as saidas se comportaram direitinho. O problema tá mesmo na entrada GP0. Ele está com um pullup de 1K e mesmo colocando um curto para o terra, nao vai.

Re: PIC12F629 nao le o pino GP0

MensagemEnviado: 16 Dez 2013 19:37
por andre_luis
Não esqueçe de desabilitar as entradas analógicas...
A propósito, que compilador voce está usando ?


+++

Re: PIC12F629 nao le o pino GP0

MensagemEnviado: 16 Dez 2013 19:44
por fmaesso
Tô usando o MPLAB X com o XC8. Quem desabilita as entradas analógicas não é o CMCON? Já pus em 0. Tem outro? Pelo que vi, o ANSEL é só para o 12F675.

Re: PIC12F629 nao le o pino GP0

MensagemEnviado: 16 Dez 2013 19:59
por andre_luis
É realmente estamos ficando sem opções, antes de condenar o compilador ou o microcontrolador.
Bom, então experimenta desabilitar o pullup interno, pode ser que esteja influenciando de algum modo no casamento com a impedancia externa.

+++

Re: PIC12F629 nao le o pino GP0

MensagemEnviado: 16 Dez 2013 20:22
por fmaesso
Macumba! Desliguei os pullups (INTCON |= 0x80) , mas nada! Troquei o processador. Mesma coisa.

Re: PIC12F629 nao le o pino GP0

MensagemEnviado: 17 Dez 2013 10:30
por fmaesso
aha! O bixo estranho. Tem que setar o Comparador (CMCON = 0x04; GP0 como entrada digital). Pronto. Tá OK.
Obrigado!