well i've made a small prog base on the LCD Display tuto.The soft is quite simple, it's like a calendar.it write on the LCD a date like "lundi dix-sept janvier deux mille deux" (it's in french, but this is not really important)strangely, the word "fevrier" doesn't appear in the sentence.the soft write the month only at "mars" and other month but not february !!!!if i delete "sAnnee" declaration, the prog doesn't work any more. (it's not in use in the prog)

have you an idea ?i add a printString() by the serialport to debugg.would you try my prog and tell me if there is the same prob (with "fevrier") on your board.I suppose there is an init prob with the vars... but why ! not enough memory ?or have made a bad declaration ?

You may be running out of RAM on the ATmega8 (it only has 1KB). Since your strings never change, you could try storing them only in program Flash memory (instead of RAM). See:http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_rom_array

it's atmega8 only 20 pins no 40 pins...i suppose this is complex but can we add more ram :-? to the avr or do we need to change the microcontroler ?i'm a bit confuse between the ram, the eeprom and the flashthe flash is to store the prog, the ram to store the vars and the eeprom ?

just to clarify a bit. There are three types of memory in the atmega8:* Flash memory: it's a rewritable non-volatile memory. this means that its content will still be there if you turn off the power. it's a bit like the hard disk on the arduino board. your program is stored here.

* RAM: it's like the ram in your computer.its content disappears when you turn of the power but it can be read and writter really fast.

* EEPROM: it's an older technology to implement rewritable non-volatile memory. it's normally used to store settings and other parametres.

remember that only a few years ago flash memory was expensive and very few microcontroller had one. it was common to use OTP memory, which is a type of memory that can ony be written once and can't be reporgrammed anymore. in this situation if you want to store settings or parametres you need an EEPROM.

Lastly when you desing a product, let's say an egg timer, that you manufacture in large quantity it is normal to buy the processors pre programmed (masked) by the factory. in this case not even a nuclear explosion will change the content of the program and the eeprom comes handy.

The link that mellis sent you allows you to use the program memory to store arrays which is very useful. We're using this technique to store strings for a UI prototype we're building for an appliance manufacturer.

using this code the array is stored in RAM right? or is it in the flash memory??? (BTW what does the "static const" declaration do exactly?)

since every character takes 5 Bytes of memory and there are 95 printable ascii characters, i'm constantly running out of memory when working on the code. those 512 bytes of eeprom would come very handy!

is there a way to put all those pixel bytes into the eeprom using the ide? if i understand it right, the bootloader just copies the program into the flash-memory. is the bootloader able to write into eeprom at all?

i know i could copy the bytes from the RAM to the EEPROM using eeprom_write_byte(adr,val); but as it looks i'm not even able to get the program up running with *every* ascii character describe. :-(

another question:

is the eeprom used for anything when doing *normal* arduino stuff (no fancy c)? as a buffer for serial communication or something? or some debugging data maybe? just because it wasn't empty when i first accessed it for testing.