Go Down

Topic: Verificar se uma variavel byte esta carregada ou nao (Read 1 time) previous topic - next topic

eltoncorsi

Salve galera, tenho uma variavel byte e precisava verificar se ela esta com informações ou nao, alguem sabe como fazer isso?

segue a declaração da variavel

byte vetor[2][6] = {B01110000,B10001000,B10001000,B11111000,B10001000,B10001000};


Obrigado!

bubulindo

Tens a certeza que queres uma matriz? Se sim, porque é que só inicializas metade da matriz?

Define informações... algo vai escrever para uma variável e só sabendo o que é é que podes saber se é o que pretendes ou não.
This... is a hobby.

eltoncorsi

Intao na realidade eu preciso desta declaração como ta mesmo pq eu estou trabalhando em um projeto que eu leio informação do teclado e jogo para variavel porem necessito verificar se esta variavel ja esta com dados ou nao antes de atribuir as informações do usuario.

a declaração correta seria

byte vector[100][6] = {};

ai antes de atribuir os dados preciso verificar se a mesma esta vazia

bubulindo

600 bytes?

Sabes o tamanho da memória do Arduino?

Para saberes se tens dados ou não, tens de manter uma variável com o apontador para o próximo local a escrever...

Ou seja:

Code: [Select]


unsigned char vector [100][6];
unsigned char x_vect = 0;

void write_value(unsigned char value) {
   vector[x_vect][x_vect%6] = value;
}


Isto assumindo que vais guardar os dados sequencialmente... é assim que vais fazer?
This... is a hobby.

eltoncorsi

é os dados vao ser gravados sequencial porem nao posso declarar a variavel do tipo char ela obrigatoriamente tem que ser do tipo byte. ja a questão da memoria do arduino irei utilizar um cartao sd para gravar estes dados

bubulindo

This... is a hobby.

eltoncorsi

eu sei, mais a questão é a seguinte estou utilizando desta maneira pois o software que estou fazendo é para enviar mensagens para uma matriz de led onde utilizo esta variavel byte para informar para o arduino quando o led ira acender ou nao por isso 0 e 1. se eu passar uma string de zeros e um nao da certo, pois o mesmo só funciona como byte

bubulindo

Um byte é um unsigned char. Na definição formal da linguagem C não existe o tipo "byte" ou "word" como vi há dias.

Daí que usar unsigned char ou byte é a mesma coisa... claro que podes mudar o tipo de variável para byte ou para o que quiseres... isso não importa aqui.
This... is a hobby.

eltoncorsi

ah sim, intao pelo que eu dei uma pequisada aqui acho q cheguei em algo que pode funcionar

vou declarar a variavel assim:

byte vector[100][6] = {};

dai após atribuir os valores digitados pelo usuario irei verificar desta maneira

for(i=0;i<=100;i++){
          if((vector[6]  > 64 && vector[6] < 91) || (vector[6] > 96 && vector[6] < 123)){
                  Serial.println("matriz carregada com letras ou numeros");
          }
}

pois para mim nao importa saber qual letra ou qual numero foi digitado e sim saber se tem uma letra ou um numero digitado!


irei testar aqui mais acho q vai funcionaer ok


vlw ai pela ajuda

bubulindo

Não vai... esse código não especifica a coluna onde estás a escrever.
This... is a hobby.

eltoncorsi

#10
Mar 19, 2013, 06:25 pm Last Edit: Mar 19, 2013, 06:39 pm by eltoncorsi Reason: 1
ops faltou coisa

Code: [Select]

for(i=0;i<=100;i++){
             if((vector[i][6]  > 64 && vector[i][6] < 91) || (vector[i][6] > 96 && vector[i][6] < 123)){
                      Serial.println("matriz carregada com letras ou numeros");
             }
}

Go Up