Salve, pessoal!
Aí, lellis! Quando eu te elogio vc acha que eu tou te zuando. Né, não! Tá vendo! Até o Iran té achou lindão (
blearghhhhhh!!! ).
Eu acho que vc tá no mesmo patamar, ou até num patamar superior do que aquele cara que apareceu por aqui dizendo ser de uma tal de associação pela beleza mundial, um negócio assim, não lembro mais!
É verdade, cara! Tú tem que por na cabeça que tú é lindão mesmo! E ponto!
É o seguinte. Quando vc passa para uma função um ponteiro, usando o modificador
CONST, não significa que vc está passando pra função, um dado que está armazenado em ROM, não!
O modificador CONST, nesse caso, impede a função, de alterar os dados que o ponteiro aponta, quer dizer, como somente por ponteiro vc pode alterar um dado externo, usando CONST vc simplesmente impede que esse dado seja alterado fora da função. Se tentar, o compilador vai gritar.
Pra armazenar um dado na ROM do 8051, no Keil, é usado o especificador de área
CODE, p. ex:
- Código: Selecionar todos
char code string_ROM[] = "MENU";
char string_RAM[] = "TESTE";
const char string_constante[] = "IMUTAVEL"; // imutável foi bom, vai dizer que não? eheheheheh
string_ROM é armazenada na flash (ROM).
string_RAM é armazenada na RAM.
E string_constante, pode OU NÃO ser armazenada na ROM, depende se o compilador alocar espaço na RAM. Se ele conseguir, vai na RAM, senão, vai na flash, belê?
Lembrando que ponteiro pra flash ocupa 16bits e ponteiro pra RAM ocupa 8 bits. Ponteiro de RAM é mais rápido.
Iran!
Baixa os exemplos de códigos do meu livro no site da Érica:
http://www.editoraerica.com.br/download ... troladores
Os exemplos são pra comunicação em quatro bits. Só que eu uso RW pra ver se o LCD já está desocupado, e o do site, o LCD só é usado para escrever.
Experimenta lá.
[]'s