#bit fila1 = portc.0
#bit fila2 = portc.1
#bit fila3 = portd.0
#bit fila4 = portd.1 ... assim por diante até fila10
Quando eu ativo elas logo depois do void main por exemplo elas funcionam normalmente.. mas dentro do void main tenho a estrutura abaixo:
loop:
while(true) // rotina principal
{
for(cont=0;cont<50;cont++)
{
end_low = 1;
mostra_tela();
}
}
E nessa função mostra_tela:
void mostra_tela()
{
for(i=0;i<10;i++)
{
carrega_linha();
//desabilita fila ativa - desliga todas logo sem comparar...
fila1 = 0;
fila2 = 0;
fila3 = 0;
fila4 = 0;
fila5 = 0;
fila6 = 0;
fila7 = 0;
fila8 = 0;
fila9 = 0;
fila10 = 0;
latchclk = 1; //mostra a linha
latchclk = 0;
//habilita fila ativa
if (i==0)
fila1 = 1;
else if (i==1)
fila2 = 1;
else if(i==2)
fila3 = 1;
(...)
Nessa parte a ativação já não dá certo.. Quando eu analiso pela Watch ocorre o seguinte:
-Quando a ativação é feita corretamente:
EXEMPLO: fila1 = 0;
fila 1 ----- 0x10
bit0 ------ 0x00
EXEMPLO: fila1 = 1;
fila 1 ----- 0x11
bit0 ------ 0x01
Até aí tudo bem.. medindo no pino tbm.. 0 e 5v...
-Quando está na minha rotina normal:
EXEMPLO: fila1 = 0;
fila 1 ----- 0x10
bit0 ------ 0x00
EXEMPLO: fila1 = 1;
fila 1 ----- 0x18
bit0 ------ 0x00
Se eu debugo pelo MPLAB SIM vai tudo certinho, mas pelo PicKit2 (em tempo real) acontece isso...
Obs: já experimentei trocar os pinos da fila1 e fila2 por outros da porta E, daí o problema ocorre nas filas 3 e 4..

Se alguém puder dar uma dica do que pode estar originando o erro...
Agradeço desde já...