Boa noite galera, é o seguinte tenho duas dúvidas simples.
1° Utilizo um PIC 16f877a, e a pouco tempo montei uma placa de desenvolvimento.Para testar mandei todos os pinos mudar seu estado a cada 500ms utilizando o delay, simulei no proteus e reparei que o pino 6 (PORTA4) desse pic não altera seu estado de 0 para 1, pensei que fosse um bug mas não, na prática também não funciona.Então tive a ideia de utilizar como entrada para setar outro bit e funcionou. Agora estou querendo entender como o porta4 é entrada/saída e funciona apenas como entrada?
2° Meu pic 16f877a utiliza um processamento de 8bits ou seja 0 a 255 decimal, isso quer dizer que eu não posso manipular valores maiores de 255? Por exemplo: Programar o pic com intuito dele contar até 600 (sem utilizar os timers, apenas usando delay e variáveis do tipo int,float) e depois setar um pino qualquer?
segue o algoritimo:
int contador;
while(true)
{ contador++; // incrementa 1 na variavel contador
delay_ms(1000); // para o processamento por 1 s.
if(contador==600) // entra nesta rotina depois de 20 min + atraso de processamento escala: us
{ led=1; //seta um bit qualquer
}
}
(sei que não seria ideal usar o delay)
Na realidade para mim bit é cada perna do microcontrolador, não entendi a relação deles com esse valor de 0 a 255 utilizada nas variaveis int, float etc. Mesmo sabendo que 8 bits setados em decimal é a maior combinação no caso 255, já que 2^8 =256 descontando o 0 se tem 255.
Obrigado.