|
From: | Bob Paddock |
Subject: | Re: [avr-gcc-list] Trick for creating WYSIWYG bitmaps in C [was: how to specifiy a binary constant] |
Date: | Fri, 23 Sep 2005 10:09:38 -0400 |
User-agent: | Opera M2/8.02 (Win32, build 7680) |
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 <address@hidden> 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 ;)
[Prev in Thread] | Current Thread | [Next in Thread] |