Atmega328 Reset

Olá,

Uma dúvida, estou a fazer um projecto e a usar várias bibliotecas, duas delas a SerialGLCD e a OBD, e agora no fim, depois de juntar o código todo, o Atmega328 começa a fazer Reset sempre que corro um comando da bilbioteca OBD.

Depois de alguns testes reparei que se ativar esta parte do código (que pertence ao Logo a mostrar no LCD usando a biblioteca SerialGLD):

byte sprite[] = {
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0xF0, 0xFC, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	0x7F, 0xBF, 0x7F, 0xDF, 0xFB, 0xF5, 0xFE, 0xFE, 0xFC, 0xF8, 0xF0, 0xA0, 0xC0, 0x80, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xD0, 0xE8, 0xF4,
	0xFA, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xBF, 0xDF, 0xEF, 0x37, 0x1B, 0x0D, 0x06,
	0x07, 0x1F, 0x3B, 0x7F, 0xEF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFD, 0xFA,
	0xF4, 0xE8, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x28, 0x78, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	0xFF, 0xFF, 0xFF, 0xFF, 0xEF, 0xE7, 0xCB, 0xAF, 0x47, 0x83, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x83, 0x47, 0x0D, 0xCB, 0xD7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFC, 0x78, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x0F, 0x1F, 0x3F, 0x7F,
	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xF1, 0xE2, 0xC0, 0x80, 0x00, 0x40,
	0x00, 0x00, 0x88, 0xC4, 0xE2, 0xF1, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
	0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF, 0x7F, 0x1F, 0xCF, 0xEF, 0xF1, 0xFC, 0xFF,
	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x41, 0xC1, 0xE1, 0xFF, 0xFF, 0xBF, 0x3E,
	0x1E, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x01, 0x01, 0x01,
	0xE1, 0xE1, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x01, 0x01, 0xFF, 0x0F, 0x1F, 0x3F, 0x7E, 0xFE,
	0xF8, 0xF0, 0xE0, 0xC0, 0x80, 0x01, 0x03, 0xFF, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0xE1,
	0xB9, 0x87, 0x83, 0x8F, 0xBF, 0xFF, 0xFF, 0xFE, 0xF8, 0xE0, 0x80, 0x00, 0x00, 0x01, 0x01, 0xFF,
	0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01, 0x00, 0x00, 0x00, 0x01, 0x01, 0xFF, 0xFF, 0x01, 0x01,
	0x00, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x0F,
	0x0F, 0x03, 0x01, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x01, 0x03, 0x0E, 0x0E, 0x00,
	0x00, 0x10, 0x18, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x10, 0x00, 0x01, 0x03, 0x0F, 0x0F, 0x1F, 0x1F,
	0x1C, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x10, 0x10, 0x10,
	0x10, 0x10, 0x18, 0x1E, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x10, 0x1F, 0x18, 0x10, 0x00, 0x00, 0x00,
	0x03, 0x07, 0x0F, 0x0F, 0x1F, 0x1F, 0x1E, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1E, 0x13, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x1F, 0x1F, 0x1F, 0x1F, 0x1E, 0x18, 0x10, 0x00, 0x03,
	0x07, 0x0F, 0x0F, 0x0F, 0x0F, 0x08, 0x10, 0x10, 0x10, 0x00, 0x00, 0x08, 0x0F, 0x07, 0x00, 0x00,
	0x00, 0x00, 0x10, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x1E,
	0x0E, 0x00, 0x00, 0x10, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00
};

(...)
	lcd.drawData(0, 0, 4, 128, 64, sprite); //LOGO

Binary sketch size: 24.554 bytes (used 80% of a 30.720 byte maximum) (0,53 secs)

Ocorre o problema do Reset.

Se remover essa parte já não faz Reset e ambas as bibliotecas correm sem problemas. Isto quer dizer o quê? Que o ATmega328 fica sem recursos disponíveis\memória SRAM?

Pelo que andei a ver, existe uma biblioteca "MemoryFree library" que me deve dizer o valor disponível de SRAM, pois o problema deve mesmo ser em ocupar a memória toda usando aquele Array 'sprite'.

Existe alguma forma de passar este Array para a Flash memory ? A alternativa se calhar era usar um SDCard mas que agora não dá para o fazer.

Se não conseguir mostrar o Logo\sprite tenho de o remover do código.

Definir o array como const byte... Ou pesquisa por arduino PROGMEM

Cara, a pergunta pode ser meio besta, mas você ligou o pino reset ao VCC? tipo eu já tive problemas pois se aconselha a ligar o reset ao vcc com um resistor de 10k, mas isso é só pra poder quando ligar o GND ele poder resetar, se o que você deseja é que ele não reset, coloque um resistor menor algo com 1k ou 500r.
Faz o teste.