Página 1 de 1

Tamanho máximo matriz PIC16 e CCS (migrado)

MensagemEnviado: 18 Out 2006 09:07
por KrafT
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.