guest2003:
Pessoal,
Estou tentando utilizar uma matriz de 200 elementos do tipo char num pic 16c67 (ele tem 367 bytes de ram) usando o compilador CCS e ele diz que não tem memoria suficiente...
Tenho que fazer algo mais para poder definir bancos ou coisa parecida ??
[]'s
-----
"Nunca ande pelo caminho traçado, pois ele conduz somente até onde os outros já foram." -Alexander Graham Bell
//------------------------------------------------------------------
Fabio Pereira:
Olá Guest,
Não há como criar tal tipo de matriz em C num PIC como este.
Lembre-se de que por definição, uma matriz deve ser constituída de posições contíguas de memória. Isto significa que o tamanho máximo para uma matriz nestes PIC's é igual a 112 elementos (que é o maior tamanho contínuo de memória RAM disponível, incluindo-se aí os 16 bytes de memória espelhada dos últimos 16 endereços de cada banco).
Uma alternativa seria dividir a matriz em três matrizes diferentes, cada uma com 67 elementos.
Lembre-se de que no seu caso, não seria possível criar duas matrizes de 100 elementos, já que ambas utilizariam endereços comuns (os 16 bytes espelhados do topo de cada banco).
Até +
Fábio Pereira
Ps.: este é um dos grandes pontos fortes dos PICs da série 18: sua arquitetura de memória permite um acesso linear contínuo a todos os endereços da RAM, permitindo criar matrizes com o tamanho máximo de RAM disponível.