Go Down

Topic: Verificar se uma variavel byte esta carregada ou nao (Read 2112 times) 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy