My problem is not really connected to the EEPROM writing, more
to the definition of global variables, thus the subject.
The code snippet below illustrates the problem. The Port
(on a STK 500) does not sequentially output the character
string as expected; it rather toggles between 0x00 and 0xFF.
I can set the port to any value, using local variables.
Is there anything I have misunderstood in the use of global
variables and avr-gcc ?
----
# include <avr/io.h>
char text[] = "This is a test"; // test string or uint8 array or...
void wait(uint16_t ms)
{
...
// a multiple do while loop to create a delay. Works !
}
void write_text_to_port()
{
uint8_t i;
for (i=0; i<10; i++) {
PORTB = ~text[i]; // Port B = character[i]
wait(400); // ...wait....
PORTB = ~0x00; // turn of all leds
wait(400); // ... wait ...
}
}
int main(void)
{
DDRB = 0xFF; // set to output
write_text_to_port();
}
---
...
Your character matrix is very large. Isn't it in fact
larger than the available amount of SRAM in AT90S8515????
..
/Mikael Krus
Yes, thanks for pointing out. This is a side issue though.
..
Is DDRC == 0xFF ?
Yes, DDR is set.
If you want to store data in the EEPROM once, you could also build
a Intel Hex File ...
Bernard
This is my intention - any examples references on how to do this ?
(Sys :
MDK Linux 10.0.
avr-gcc (GCC) 3.3.2
objcopy 2.14 20030612
uisp version 20040311
STK500 testboard, AT90S8515)
SEH.
_______________________________________________
avr-gcc-list mailing list
address@hidden
http://www.avr1.org/mailman/listinfo/avr-gcc-list