Name: Anonymous 2012-11-20 17:54
I'm doing a project using the Microchip C18 compiler.
I have a struct called a block that points to other blocks (north east south west)
These blocks will make me a map.
I then have a pointer that I use to evaluate everything.
Just using RAM it looks like:
This lets me do stuff like:
I ran out of RAM however, so here is my attempt at using rom:
If done some debugging and can tell the above part works, but trying to make the position pointer is giving me grief.
so I guess my question is:
How do I hold the rom variable addresses in a pointer which I can edit the values of?
When i try: struct block *position = &map[0];
I get "Warning [2066] type qualifier mismatch in assignment"
I realize that a rom variable and ram variable are two different things,
but I have no idea what to do.
I have a struct called a block that points to other blocks (north east south west)
These blocks will make me a map.
I then have a pointer that I use to evaluate everything.
Just using RAM it looks like:
struct block{
struct block *north, *east, *south, *west;
};
struct block map[5] = { // just a simple line.
{ NULL, &map[1], NULL, NULL },
{ NULL, &map[2], NULL, &map[0]},
{ NULL, &map[3], NULL, &map[2]},
{ NULL, &map[4], NULL, &map[3]},
{ NULL, NULL, NULL, &map[4]}
};
struct block* position = &map[0];This lets me do stuff like:
void goWest()
{
if(position -> west != NULL) position = position -> west;
}I ran out of RAM however, so here is my attempt at using rom:
struct block{
rom struct block *north, *east, *south, *west;
};
rom struct block map[5] =
{ // just a simple line.
{ NULL, &map[1], NULL, NULL }
.....If done some debugging and can tell the above part works, but trying to make the position pointer is giving me grief.
so I guess my question is:
How do I hold the rom variable addresses in a pointer which I can edit the values of?
When i try: struct block *position = &map[0];
I get "Warning [2066] type qualifier mismatch in assignment"
I realize that a rom variable and ram variable are two different things,
but I have no idea what to do.