I thought I'd try this bitmap 'trick' via copy&paste of the
#defines and code into the file I was working on, this is what I get:

Name/name.c:692: error: `sXXXXXX__' undeclared here (not in a function)
Name/name.c:692: error: initializer element is not constant
Name/name.c:692: error: (near initialization for `lcd_char_P[0]')
Name/name.c:693: error: `sX_____X_' undeclared here (not in a function)
Name/name.c:693: error: initializer element is not constant
[snip rest of the bitmap erros]

Is this 'trick' compiler or compiler option dependent?

This is usually the problem with 'tricks' they come back and
bite you at some point.

On Thu, 22 Sep 2005 23:48:38 -0400, Derric Tubbs <[EMAIL PROTECTED]> wrote:

Secondly, I got this little trick from the book that
the link above points to, the book is called "Expert C
Programming".  Anyhow for an 8 bit LCD bitmap like
Vincent mentioned below, do the following:

#define X )*2+1
#define _ )*2
#define s ((((((((0 /* 8 parens for 8 bit, 16 for 16,
etc) */

Then you just "draw" your bitmap as such:

uint8_t lcd_char_P[] =
{
  sXXXXXX__,
  sX_____X_,
  sX______X,
  sX_____X_,
  sXXXXXX__,
  sX_______,
  sX_______,
  sX_______
}

and then make sure you undef the X,s, and _.  Now
doesn't that look like a big P right in your code ;)

Pretty cool little trick.  Kind of extravegant but
something similar to this sure would have made things
clearer when I was looking at some code that defined
characters on a graphic LCD the other day ;)


_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to