volatile uint8_t reset_mask[768] = {0}
Ora sto impostando i valori di questi elementi di matrice su 1 durante una delle operazioni interne.Come impostare la matrice volatile su zero utilizzando memset?
In un'altra chiamata funzionale, ho bisogno di impostare tutti gli elementi della matrice a 0. Un modo è utilizzando ciclo for ma ritengo modo migliore per assegnare tutti gli elementi della matrice è quello di utilizzare memset
memset(reset_mask, 0, sizeof(reset_mask));
ma sto ottenendo questo errore: - "cast dal tipo 'volatili uint8_t * {alias volatili unsigned char *}' digitare 'void *' getta via le qualificazioni"
Nel caso in cui non possiamo usare memset qui, è c'è un modo migliore per impostare tutti gli elementi di questo array volatile in un colpo solo?
'std :: fill (std :: begin (reset_mask), std :: end (reset_mask), 0);' funziona. –
@ R.MartinhoFernandes Questa dovrebbe essere una risposta (poiché è davvero l'unica risposta corretta). In C, ovviamente, avrebbe dovuto usare il suo loop. –
Per che cosa stai usando l'array volatile? Potrebbe essere necessario disabilitare alcuni/tutti gli interrupt? –