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 > --------------------------------------- >
Message
Re: Some C help please !
2007-03-22 by kernels_nz
Attachments
- No local attachments were found for this message.