Fórum sobre desenvolvimento de sistemas embarcados: Hardware e Software, Tecnologias: Eletrônica digital e analógica, Microcontroladoras, Microprocessadores, Sistemas *NIX (Linux, BSD), Software embarcado Baremetal. Sem fins lucrativos.
xiii, num é isso não, eu já vi essa discussão aqui no forum, acho que tem a ver com limitação do compilador ou do pic mesmo, no manual do CCS diz que ele coloca as constantes na ROM sim, agora tem que ver porque ele num deixa passar de 256....
eu testei aqui, qdo vc tenta colocar uma matriz maior que 256 no PIC16f648 por exemplo, dá pau, ele diz que a matriz é muito longa
Hitech C +=1 !
Nele pode colocar matriz > 256. O compilador se vira!
como sugestão mande ele gerar um .asm (matriz<=256) e avalie o cód.
se quiser compilo, no Hitech e posto o .asm para comparar.
lellis obrigado , mas o meu asm para pic é muito fraco e não vai adiantar , so gostaria de saber se existe este possibilidade de criar uma MAT > que 256 posçoes em C no CCS , mas obrigado pela ajuda !
If (ref<= 255) then
begin
case ref of
begin //array 1
x
x
x
x
x
x
x
x
x
x
x
end;
end
else if ref>= 255 then
begin
case ref of
begin // array 2
x
x
x
x
x
x
end;
end;
existem outras formas de fazer isto, tendo o valor de ref para buscar outro valor em uma matriz, é so montar uma maquina de estados para escolher qual tabela vai ser retirado o valor..
no programa final a diferença de tempo de execução vai ser muito pouca..
Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
Não é que os compiladores sejam ruins, não. Eu acredito que eles usem a RAM interna, porque o acesso nessa área é mais rápido.
Não sei com relação ao PIC, mas, no 8051, o endereçamento na flash é de 16 bits, e na RAM é de 8 bits.
[]'s
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Bom dia, pelo que experimentei nos compiladores hitech, MikroC vai depender muito do tipo de PIC utilizado, se for da linha 16F fora os truque internos ao compilador, vai ser gerado uma instrução "retlw", se for utilizado os da linha 18F vai ser utilizado o tablat. isto para matrizes fixas. retlw até 256 e tablat mais que 256, não infelizmente medi o limite superior.