Boa tarde a todos.
Estive recentemente "apanhando" do arduino no quesito memória RAM. Minha aplicação estava consumindo memória demais e quando eu tentei acrescentar mais algumas funcionalidades o programa não mais funcionou.
Depois de muita pesquisa descobri que quando utilizados funcões como Serial.println("teste"), a string "teste" á armazenada na memória RAM e na memória de programa, mesmo se tratando de uma constante. Isso certamente era a causa do meu estouro de memória, visto que eu utilizo bastante essa função.
A solução do meu problema foi encontrada aqui:
http://playground.arduino.cc/Learning/Memory
Quando fazemos a função da seguinte maneira: Serial.println(F("teste")), o arduino apenas aloca espaço na memória de programa e não mais utiliza a RAM para armazenar a string.
Fica a dica para mais alguém que esteja passando pelo problema de falta de memória RAM!
Abraço!
Tags:
Show de dica! A comunidade agradece!
Bruno, boa noite!
Sim. Essa é uma dica importantíssima para quem trabalha com pequenos dispositivos.
Escrevi um artigo aqui no LAB baseado neste link que você passou e em outros disponíveis na Internet:
http://labdegaragem.com/profiles/blogs/artigo-arduino-e-otimiza-o-d...
Se mesmo assim enxugando o programa , faltar memória RAM, pode acrescentar uma RAM externa.
A comunicação com a RAM é feita através da interface SPI.
http://playground.arduino.cc/Main/SpiRAM
Por exemplo :
23K256 - 256K SPI Bus Low-Power Serial SRAM ( 32 KBytes)
nossa, nao sabia que tem expansao. comprei essa RAM 23K256 e EEPROM 24LC256, agora sim!!! estava usando um Mega por causa de memoria mas vou usar o Nano com essa expansao.
tem de usar um divisor de tensao 100 e 330ohms.
vlw pela dica, Murta.
Mas atenção, tanto a memória RAM como a EEPROM podem ser usadas como armazenamento de dados.
Não sei se dá para acrescentar código na EEPROM externa.
Talvez sim, mas não tenho certeza. Pois terá que redirecionar o endereçamento do código.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por