O que é MEMSEST () em Arduino
O MEMSET é uma função usada na programação Arduino que pode armazenar um número específico de bytes retirados de um determinado valor para seu destino. Usando esta função, podemos copiar um byte de valor para o bloco de memória de destino byte byte.
Agora discutiremos o uso da função de MEMSET () na programação Arduino.
Sintaxe de Memset ()
MEMSET (destino, valor, n_bytes);
Parâmetros de MEMSET ()
A função MEMSET () possui três parâmetros:
1: destino
Destinos indicam o local da memória onde o valor do bloco de memória será definido byte byte byte. Qualquer tipo de valor pode ser definido aqui na forma de byte. O valor anterior será substituído por n número de bytes. Se n for maior que o tamanho do objeto de destino, o comportamento de saída será indefinido.
2: valor
Este é o ponto de origem do qual o personagem será copiado para o bloco de memória de destino. Aqui o valor está em número inteiro, mas será convertido em caráter não assinado antes de ser copiado.
3: n_bytes/comprimento
Isso indica o número de bytes que devem ser definidos no bloco de destino. A função MEMSET () retirará n bytes específicos de um determinado valor e o armazenará dentro do bloco de memória de destino.
Como usar o MEMSET () em Arduino
Em Arduino, usamos o MEMSET () para definir dados de n bytes de valor determinado para destino com número especificado de bytes. MEMSET () cópias ou substitui os bytes de valor n de N para cada um dos primeiros N caracteres no bloco de destino.
Para entender mais sobre a função de MEMSET (), levaremos um esboço do Arduino e tentaremos copiar um byte para nossa matriz de destino.
Void Setup ()
Serial.começar (115200);
Char Destination [14] = "Linuxhint.com ";
Serial.println ("Antes de Memset Destination:");
Serial.println (destino);
MEMSET (Destino, '.5*sizeof (char)); /* Preencha os 5 primeiros caracteres começando no destino [14] com '.' */
Serial.println ("Após o destino de Memset:");
Serial.println (destino);
retornar 0;
Void Loop ()
No exemplo acima, declaramos a matriz de personagens destino. O tamanho da matriz de char é 14.
Na próxima linha depois de declarar a variável de char, imprimimos a saída da matriz de destino no monitor serial como “Antes do destino de Memset”.
Depois disso, executamos um MEMSET () função que substituirá a matriz de destino pelos cinco primeiros caracteres com o valor “.”E o resto da matriz permanecerá como é. Aqui o valor multiplicado com sizeof (char) determinará o número de bytes a ser substituído no bloco de memória de destino ou matriz.
Na linha 8, imprimimos a saída da matriz de destino após a aplicação da função MEMSET () no monitor serial. A representação pictórica da função de memset () pode ser dada como abaixo:
A saída no monitor serial é mostrada na figura abaixo:
Como esvazio uma matriz em Arduino
Para esvaziar uma matriz em Arduino, também usamos a função MEMSET (). A única diferença é agora que copiaremos 0 ou nulo para n bytes do bloco de memória de destino. Uma vez que todos os caracteres da matriz estiverem definidos como 0, a matriz estará vazia. Vamos dar um exemplo de esboço e substituir todos os personagens de uma matriz com 0.
Void Setup ()
Serial.começar (115200);
Char Array [14] = "Linuxhint.com ";
Serial.println ("Antes do MEMSET Array:");
Serial.println (matriz);
MEMSET (Array, '0', 13*sizeof (char)); / *Preencha todos os 13 caracteres de matriz com 0 */
Serial.println ("Após o MEMSEST Array:");
Serial.println (matriz);
retornar 0;
Void Loop ()
No código acima primeiro, inicializamos a comunicação serial, definindo a taxa de transmissão depois disso, definimos uma matriz de char “Linuxhint.com”Com o comprimento da corda de 14.
Em seguida, imprimimos a matriz no monitor serial antes de aplicar a função MEMSET ().
Na linha 7, a função MEMSET () é definida, que substituirá todos os valores de matriz de char por zero byte por byte. Como alternativa, podemos dizer que nossa matriz agora está vazia contendo valores de bytes. Abaixo está uma ilustração de todo o código que dará melhor compreensão.
Saída do monitor serial
Como alternativa, também podemos substituir qualquer entidade de matriz por nulo ou zero. Esta é outra maneira de esvaziar uma matriz sem exibir caracteres nulos na saída. Nós apenas temos que alterar o valor da função de memset () que deve ser copiado para '\ 0'.
MEMSET (Array, '\ 0', 13*sizeof (char));
Conclusão
Neste artigo, aprendemos como a função MEMSET () é usada na programação Arduino. A função MEMSET () em Arduino pode definir ou substituir qualquer byte de valores de matriz por byte. Além disso, discutimos como essa função é útil para esvaziar uma matriz. Usando esta função, você pode otimizar o desempenho geral do código.