avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [avr-gcc-list] tinyurl trick (WAS: Trick for creating WYSIWYG bitmap


From: Matt.VanDeWerken
Subject: RE: [avr-gcc-list] tinyurl trick (WAS: Trick for creating WYSIWYG bitmaps in C [was: howto specifiy a binary constant])
Date: Fri, 23 Sep 2005 14:05:14 +1000

Good advice Derric, except that I disagree about the tinyurl trick; It
encourages the ability to "spoof" undesirable web pages in email. When I
click a link, I like to see *exactly* where I'm linking to, before
linkage occurs. Otherwise, there's no telling where I might end up...

Cheers,
Matthew van de Werken - Electronics Engineer
CSIRO E&M - Rock Mass Characterisation - 1 Technology Court - Pullenvale
- 4069
p: (07) 3327 4142 * f: (07) 3327 4455 * e: address@hidden
"Backups are for wimps. Real Men upload their data to an FTP site and
have everyone else mirror it." 
-- Linus Torvalds

-----Original Message-----
From: address@hidden
[mailto:address@hidden On
Behalf Of Derric Tubbs
Sent: Friday, 23 September 2005 1:49 PM
To: address@hidden
Subject: Re: [avr-gcc-list] Trick for creating WYSIWYG bitmaps in C
[was: howto specifiy a binary constant]


Firstly, everyone needs to know about tinyurl.com,
which allows you to send a tiny URL like http://tinyurl.com/92eaj to
point to long URLs (open this one and you'll see it that takes you to a
book on Amazon.com that I'm about to refer to).

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 ;)

Tubbs

--- Vincent Trouilliez
<address@hidden> wrote:

> On Thu, 2005-09-22 at 18:00 -0700, Derric Tubbs
> wrote:
> > I believe the original poster said he was new to programming.  If 
> > so, just remember that each hex
> digit
> > represents four binary bits/digits with decimal
> values
> > of 0-15.  It won't take long at all to get where
> > reading hex, both for decimal value and bit
> pattern,
> > happens without thinking about it.
> 
> Yeah I am fairly new to C programming (only one year epxerience, on
> Microchip PIC's...and that was 5 years ago !), but
> not to electronics
> engineering, so I have long got the hang of Hex
> notation ;-)
> 
> > Is there some reason you can't specify your
> constant
> > as hex?
> 
> It's not that I can't, it' just that in some cases,
> a binary notation is
> natural, and a hex one doesn't make sense.
> 
> Typical example is when I want to define a few
> custom characters for a
> text LCD module. if you use a binary notation, it
> actually gives you a
> very convenient visual representation of each
> character, since one bit
> represents a pixel, and one byte represents one row
> for one character.
> So you can very easily define the characters,
> whereas if using a hex
> notation, it's a nightmare to define the characters,
> and you can't check
> them visually for correctness, and making
> corrections is awkward.
> That's just an example.
> 
> 
> 
> On Thu, 2005-09-22 at 20:03 -0500, David Kelly
> wrote:
> > We may make a FreeBSD user out of you yet.
> 
> Not a ray of hope in the current state of things ;-)
> I happen to have
> eventually found the perfect Linux distro for me, so
> they would have to
> go seriously wrong for to consider the hassle of
> changing 'home' ;-) ...
> 
> 
> > Joerg included a/the patch for binary constants in
> the FreeBSD Ports
> > version of avr-gcc, which he maintains.
> > 
> Oh, I wonder what we would become without Joerg.
> Thank you for the patch
> Herr Joerg :-)
> 
> 
> > If this long URL survives then it will download
> the patch. You are  a
> > Linux user so you have lots of practice applying
> patches, right?  :-)
> > 
> > 
> You said it, I am Linux "user", not developper !!
> ;o)
> I did once try to apply a patch to some program, but
> I failed miserably,
> both because I couldn't find anywhere on the web the
> exact command line
> to use, all where suggesting different options, and
> also because the
> source code I had didn't exactly match what the
> patch was expecting.
> Tried to apply the patch by hand, but the patch and
> source code were so
> different, I really didn't know what to do with the
> patch.
> > 
> I guess I will just take the easy route, and wait
> patiently for the
> patch to make it into the next stable release of
> gcc-avr ;-)
> 
> 
> 
> --
> Vince
> 
> 
> 
> _______________________________________________
> AVR-GCC-list mailing list
> address@hidden
>
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list
> 



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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]