/*
Buffer
Esse código, não armazena mais valores após o estouro do buffer
Autor: Fabrício Ribeiro
Data: 27/04/2025
Status: ok
*/
#define BUFFER_SIZE 10
uint8_t BUFFER[BUFFER_SIZE];
uint8_t BUFFER_POINT;
//Configurações
void setup(){
Serial.begin(115200);
clear_buffer();
uint8_t AppKey[8] = {0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00};
put_buffer(AppKey, sizeof(AppKey));
put_buffer(AppKey, sizeof(AppKey));
put_buffer(AppKey, sizeof(AppKey));
show_buffer();
}
//Loop principal
void loop(){
}
//Limpa o buffer
void clear_buffer(void){
BUFFER_POINT = 0;
for(byte i = 0; i < BUFFER_SIZE; i++){
BUFFER[i] = 0;
}
}
//Guarda valores no buffer
void put_buffer(uint8_t vetor[], uint8_t n){
if(BUFFER_POINT < BUFFER_SIZE){
for(byte i = 0; i < n; i++){
BUFFER[BUFFER_POINT] = vetor[i];
BUFFER_POINT++;
if(BUFFER_POINT == BUFFER_SIZE){
break;
}
}
}
}
//Mostra em hexadecimal os valores armazenados no buffer
void show_buffer(void){
for(byte i = 0; i < BUFFER_POINT; i++){
//Serial.print("0x");
Serial.print(BUFFER[i] < 16 ? "0" : "");
Serial.print(BUFFER[i], HEX);
Serial.print(" ");
}
Serial.println("");
}