Yahoo Groups archive

AVR-Chat

Index last updated: 2026-04-28 22:41 UTC

Message

Re: Some C help please !

2007-03-22 by kernels_nz

Hi Guys, I started this conversation, but after asking the initial
question and getting a few replies, it has become glaringly obvious to
me why (UCSRA &(1 << UDRE)) is better than UCSRA.5

By the way, UCSRA.5 compiles fine in codevision and was how we were
taught to access the AVR registers way back in uni. I realise now that
it is a fairly simplistic way to write the code, and not good if you
want to re-use the code on any other AVR.

The huge advantage of using the shift and mask method is that it makes
pre-written code completely portable to any other AVR micro with the
same names for bits, and generally when two AVR micros have the same
peripherals, they also use the same bit-names, but not necessarily in
the same bit position.

My 2c, glad I asked the question to start of with, the help from
everyone in this group is amazing. 

Cheers
Hein B
Auckland, New Zealand.


--- In AVR-Chat@yahoogroups.com, Dennis Clark <dlc@...> wrote:
>
> Mike,
> 
>    What makes the former syntax nicer is that it has no "magic numbers" 
> embedded in the code.  UCSRA.5 does not mean as much as UCSRA.UDRE (if 
> that is defined) or as UCSRA & (1<<UDRE) - The latter does not
require a 
> library of structures defining the bits, just a bunch of #defines. 
> You'll pick it up as you go along.  :)
> 
> DLC
> 
> Mike Bronosky wrote:
> > All this is fine. But for many of us hobbyists that know just
enough about
> > C, especially when it comes to AVRs, to be down-right-dangerous...
> > 
> > For me something like the following, is good, proper and works. It
is not
> > fully understood until I dissect.
> > while ((UCSRA & (1<<UDRE))==0);
> > 
> > while(UCSRA.5 == 0);  //while(USART Data Register Empty)
> > Haven't tried this but I think it should work and means "while the
data
> > register is empty sit right here".
> > Now to the Xsperts may disagree. I'm a hobbiest, it works for me
and best of
> > all I understand why it works.
> > 
> > Mike
> > 
> > On 3/14/07, David Appleton <englsprogeny@...> wrote:
> > 
> >>  I am going to learn so much from this group......
> >>Glad I joined.
> >>
> >>
> >>: )
> >>
> >>[Non-text portions of this message have been removed]
> >>
> >>
> >>
> > 
> > 
> > 
> > [Non-text portions of this message have been removed]
> > 
> > 
> > 
> >  
> > Yahoo! Groups Links
> > 
> > 
> > 
> 
> -- 
> ---------------------------------------
> Dennis Clark    TTT Enterprises
> ---------------------------------------
>

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.