Prezado Srs.
Passei dois dias em 5 linhas de codigo, nao sei mais oq fazer.
Segue o problema. Tenho uma rotina pronta para o 16f877, ao converter para o 18f452 a mesma deixou de funcionar.
Acabei descobrindo que um vetor que recebe dados nao esta guardando os valores (fica tudo zero).
Segue o codigo:
for(i8=0;i8<udp_data_size;++i8) // Faz a leitura do pacote
{
indice = UDP_data + i8; // udp_data_size = Sn_RX_RSR - 8 (header_size)
dado = w5100_read_reg(addri++); // Recebe 1 byte e monta o pacote
delay_ms(10);
packet[indice] = dado; // incrementa o offset
printf("%c [%lu] >%lu<",packet[indice], addri,indice); // UDP_data = UDP_srcport+2010 = 0x22 + 2010
printf(lcd_escreve,"%c",dado);
++get_offset;
}
esta tudo dentro da main, inclusive a declaracao do vetor:
char packet[1118];
Ele esta recebendo perfeitamente o valor pois a variavel dado esta correta, mas igualando esta ao pacote[indice] este nao guarda o valor, sendo que no 877 funciona perfeitamente.
estou usando o ccs 4.017...
Alguma dica??