Pessoal, boa tarde,
tenho visto aqui vários códigos postado ( e talvez eu mesmo o tenha feito),
sem se preocupar com a convenção usada pelo C ao definir variáveis.
Sei que isto é muito claro para os experientes, mas para aqueles que usam
os códigos de maneira "hobista", ou não fizeram algum treinamento em programação,
podem ter dificuldade em entender como e quando usar estas definições.
Segue abaixo uma "tabela" com os vários tipos de dados possíveis para uma variável,
e anexo um código para demonstrar em uso, mostrando o que acontece quando se usa uma
variável definida como "unsigned" ou não.
E usei neste código, a definição de int ( unsigned int e int), mas a idéia vale também
para unsigned char, e unsigned long, pois só muda a escala de valores.
Rui
Dado tamanho definição
boolean -- (8 bit) - lógica true / false (verdadeiro/falso);
byte -- (8 bits) - número sem sinal 0 a 255;
Char -- (8 bit) - número com sinal de -128 a 127;
unsigned char -- (8 bit) - o mesmo que 'byte';
word -- (16 bits) - número sem sinal 0 a 65535;
int -- ((16 bit) - número com sinal de -32768 a 32767;
unsigned int -- 16 bit) - o mesmo que "word";
long -- (32 bit) - número com sinal de -2.147.483.648 a 2.147.483.647;
unsigned long -- (32 bit) - número sem sinal de 0 a 4,294,967,295;
float -- (32 bit) - número com sinal de -3.4028235E38 para 3.4028235E38.
O float no Arduino não é nativo, recomenda-se evitá-lo.
fonte: https://learn.sparkfun.com/tutorials/data-types-in-arduino
Tags:
Boa tarde TLM,
eu aprendi usar uma solução para reduzir espaço de memoria,
mas não fui atras para entender porque.
Qdo você tem linhas de impressão no seu sketch, me deram a dica de modificar.
Invés de usar:
Serial.println();
usar assim:
Serial.println(F());
Não tenho certeza, mas acho que só funciona com Strings.
RV
Boa noite Tiago,
O Arduino MEGA tem mais memória.
Use um ESP32 então.
memória RAM estática interna de 520K Bytes
Memória externa (total 4) – suporte para até 16M Bytes Flash e 16M Bytes SRAM
Amigo algumas coisas que utilizo para redução de memória.
Dados estáticos fixos (que não modificam) utilizo flash ao invés de ram. Veja a biblioteca pgmspace.
Evite muito processamento no método principal, quebre em métodos menores dividindo em pequenas partes, isso pode melhorar o consumo de memória, mais em contra-partida pode reduzir o desempenho.
Eu costumo utilizar a ferramenta avr-size para verificar o carregamento de dados na ram no ato do carregamento. Eu otimizo código, compilo e verifico com avr-size o resultado.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por