Come viene utilizzata la funzione Memset in Arduino per svuotare un array

Come viene utilizzata la funzione Memset in Arduino per svuotare un array
Le schede Arduino possono essere programmate utilizzando IDE. Le tecniche di programmazione IDE Arduino sono come i linguaggi C e C ++. Se qualcuno ha una buona esperienza di queste due lingue, può facilmente adottare la lingua Arduino. La programmazione Arduino si basa su versioni semplificate di C e C++. Arduino Language ci fornisce molte funzioni che possono essere utilizzate per migliorare l'efficienza delle schede Arduino. Una di queste funzioni è Memset Il che aiuta gli utenti a gestire gli array in modo migliore. Qui discuteremo di come viene utilizzato Memset nella programmazione Arduino.

Cosa è Memset () in Arduino

Il Memset è una funzione utilizzata nella programmazione Arduino in grado di archiviare un numero specifico di byte prelevati da un determinato valore alla sua destinazione. Utilizzando questa funzione, possiamo copiare un byte di valore al byte di blocco di memoria di destinazione per byte.

Ora discuteremo dell'uso della funzione Memset () nella programmazione Arduino.

Sintassi di memset ()

memset (destinazione, valore, n_Bytes);

Parametri Memset ()
La funzione Memset () ha tre parametri:

1: destinazione
Le destinazioni indicano la posizione della memoria in cui il valore del blocco della memoria verrà impostato byte da byte. Qualsiasi tipo di valore può essere impostato qui sotto forma di byte. Il valore precedente verrà sostituito dal numero n di byte. Se n è maggiore della dimensione dell'oggetto di destinazione, il comportamento di output non sarà definito.

2: valore
Questo è il punto di origine da cui il carattere verrà copiato nel blocco di memoria di destinazione. Qui il valore è intero, ma verrà convertito in carattere non firmato prima che venga copiato.

3: N_BYTE/LUNGHE
Ciò indica il numero di byte che devono essere impostati nel blocco di destinazione. La funzione Memset () prenderà n byte specifiche da un determinato valore e lo memorizzerà all'interno del blocco di memoria di destinazione.

Come usare Memset () in Arduino

In Arduino abbiamo usato Memset () per impostare i dati da n byte di valore dato a destinazione con numero specificato di byte. memset () copie o sostituisce i byte di valore n dati a ciascuno dei primi n caratteri nel blocco di destinazione.

Per ottenere una maggiore comprensione della funzione Memset () faremo uno schizzo Arduino e proveremo a copiare un byte N nel nostro array di destinazione.

void setup ()
Seriale.Inizia (115200);
CHAR DETTAGNO [14] = "LinuxHint.com ";
Seriale.println ("prima della destinazione Memset:");
Seriale.println (destinazione);
Memset (destinazione, ".', 5*sizeof (char)); /* Riempi i primi 5 caratteri a partire dalla destinazione [14] con '.' */
Seriale.println ("dopo la destinazione Memset:");
Seriale.println (destinazione);
restituzione 0;

void loop ()

Nell'esempio sopra abbiamo dichiarato l'array di caratteri destinazione. La dimensione dell'array char è 14.

Nella riga successiva dopo aver dichiarato la variabile Char, abbiamo stampato l'uscita dell'array di destinazione sul monitor seriale come "Prima della destinazione Memset".

Dopodiché abbiamo eseguito un memset () funzione che sostituirà l'array di destinazione con i primi cinque caratteri con il valore "."E il resto dell'array rimarrà così com'è. Qui il valore si moltiplicò con sizeof (char) determinerà il numero di byte da sostituire nel blocco di memoria o nell'array di destinazione.

Nella riga 8 abbiamo stampato l'uscita dell'array di destinazione dopo aver applicato la funzione Memset () sul monitor seriale. La rappresentazione pittorica della funzione Memset () può essere fornita come di seguito:

L'output sul monitor seriale è mostrato nella figura seguente:

Come svuoto un array in Arduino

Per svuotare un array in Arduino usiamo anche la funzione Memset (). L'unica differenza è ora che copriremo 0 o null a n byte del blocco di memoria di destinazione. Una volta che tutti i caratteri dell'array sono impostati su 0, l'array sarà vuoto. Facciamo uno schizzo di esempio e sostituiamo tutti i caratteri di un array con 0.

void setup ()
Seriale.Inizia (115200);
Char Array [14] = "LinuxHint.com ";
Seriale.println ("prima dell'array di memset:");
Seriale.println (array);
memset (array, '0', 13*sizeof (char)); / *Riempi tutti i 13 caratteri di array con 0 */
Seriale.println ("After Memset Array:");
Seriale.println (array);
restituzione 0;

void loop ()

Nel codice sopra prima, abbiamo inizializzato la comunicazione seriale definendo il tasso di baud dopo che abbiamo definito un array di char "Linuxhint.com"Con una lunghezza della corda di 14.

Successivamente, abbiamo stampato array sul monitor seriale prima di applicare la funzione MemSet ().

Nella riga 7 è definita la funzione Memset () che sostituirà tutti i valori di array di char a zero byte per byte. In alternativa, possiamo dire che il nostro array è ora vuoto contenente valori di byte. Di seguito è riportato un illustrazione di tutto il codice che darà una migliore comprensione.

Output del monitor seriale

In alternativa, possiamo anche sostituire qualsiasi entità di array con null o zero. Questo è un altro modo per svuotare un array senza visualizzare caratteri null in output. Dobbiamo solo modificare il valore della funzione Memset () a cui deve essere copiato "\ 0'.

memset (array, '\ 0', 13*sizeof (char));

Conclusione

In questo articolo, abbiamo imparato come viene utilizzata la funzione Memset () nella programmazione Arduino. La funzione Memset () in Arduino può impostare o sostituire qualsiasi byte valori di array per byte. Inoltre abbiamo discusso di come questa funzione sia utile per svuotare un array. Utilizzando questa funzione, è possibile ottimizzare le prestazioni complessive del codice.