Página 1 de 1

Varredura de tabela na memoria de programa

MensagemEnviado: 17 Dez 2016 17:34
por Vonnilmam
Olá, pessoal....eu acho que estou ficando burro... :cry:

Eu preciso ir lendo byte a byte em sequencia até o final da tabela que esta na memória de programa, mas não estou conseguindo criar o raciocinio, podem me ajudar.

Cheguei até essa rotina a seguir, eu consigo ler o primeiro byte na flash, mas não estou conseguindo entender como incrementar o ponteiro...

cpp code
// tabela com os dados:
const code char tab1[5]
{ 0, 1, 2, 3, 4, 5};

void main()
{
while (1)
{
txt = *tab1; // txt é uma variável unsigned char.
}
}


obrigado

Re: Varredura de tabela na memoria de programa

MensagemEnviado: 17 Dez 2016 18:43
por andre_luis
Isso está compilado normalmente sem errro ?

No meu entender, a atribuição dos valores do vetor deveria ser precedido de um operador "=".
Além disso. parece que está estourando o tamanho da variavel de 5 bytes com um vetor de 6 posições:

Código: Selecionar todos
const code char tab1[5]
{ 0, 1, 2, 3, 4, 5};

Re: Varredura de tabela na memoria de programa

MensagemEnviado: 17 Dez 2016 19:06
por Vonnilmam
A dúvida é que eu não estou conseguindo entender como incrementar a tabela para ler os bytes em sequencia, colocando eles na variavel txt...

Esse é apenas um exemplo...

corrigindo, tab1[6]

Re: Varredura de tabela na memoria de programa

MensagemEnviado: 17 Dez 2016 20:05
por andre_luis
Não precisa de ponteiro, mas apenas de um indice.
Algo do tipo:

cpp code
// tabela com os dados:
const code char tab1[] = { 0, 1, 2, 3, 4, 5};
char i = 0 ;

void main()
{
while (1)
{
if ( i++ > sizeof(tab1[]) )
i = 0 ;
txt = tab1[i]; // txt é uma variável unsigned char.
}
}

Re: Varredura de tabela na memoria de programa

MensagemEnviado: 17 Dez 2016 21:24
por Vonnilmam
Oi andre,

Obrigado pelas dicas, vou montar essa ideia e compilar.

No meu caso eu só dei um exemplo, pois minha tabela terá 3.000 dados de 8 bits cada um.

O procedimento é o mesmo?

Porém vou fazer como você disse, quero ler uma sequencia inteira até o final, partindo do 0 até o final.

Para esboçar melhor imagine uma tabela de imagem, serão várias, com diversos tamanhos...sendo que ao invés de imagem vou ler um arquivo midi.

Obrigado

Re: Varredura de tabela na memoria de programa

MensagemEnviado: 17 Dez 2016 21:36
por Vonnilmam
Andre, muito obrigado, foi na MOSCA, sua dica.

Funcionou corretamente,

Sou muito agradecido...

Obrigado