Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/23/10 03:21
Read: times


 
Msg Score: +1
 +1 Good Answer/Helpful
#174412 - Syntax and strategy problem.
Responding to: ???'s previous message
Every outer item in your union is on top of each other.

Try something more like this:

/* define structure of RTC register layout */
struct CAL_DATA
{
	unsigned char min;
	unsigned char hours;
	unsigned char date;
	unsigned char mon;
	unsigned char year;
	unsigned char ctl;
};

/* define the union to overlay array and register structure */ 
union CAL_OVERLAY
{
	unsigned char cal_ary[sizeof(CAL_DATA)];
	struct CAL_DATA cal_reg;
};

/* declare an instance of the union as global variable */
union CAL_OVERLAY cal;


Note I rarely if ever use TYPEDEF in C. It make proofing code for design reviews overly complicated.

Michael Karas


List of 23 messages in thread
TopicAuthorDate
Unions and position of bytes            01/01/70 00:00      
   Syntax and strategy problem.            01/01/70 00:00      
      wow that was quick and excellent thanks            01/01/70 00:00      
      Works a treat            01/01/70 00:00      
   Note that this is heavily compiler-reliant            01/01/70 00:00      
      Code for transparency            01/01/70 00:00      
         Agreed - after bitter experience            01/01/70 00:00      
            Compiler Specific            01/01/70 00:00      
               How many compler brands/versions to test for?            01/01/70 00:00      
                  Create a Compiler header            01/01/70 00:00      
                     Didn't we talk about unions - your examples doesn't...            01/01/70 00:00      
                        Someone already wrote up a good way....            01/01/70 00:00      
                           Incomplete byte order. But pad is still dangerous            01/01/70 00:00      
                              why bother?            01/01/70 00:00      
                                 how would you know?            01/01/70 00:00      
                                    Exactly my point... you don't            01/01/70 00:00      
                                       Never give up on portability - just decide the amount            01/01/70 00:00      
               Yes, but            01/01/70 00:00      
               why bother?            01/01/70 00:00      
      unions and portability            01/01/70 00:00      
         OT: use TR0 = 0; TMR0 -= offset; TR0 = 1;            01/01/70 00:00      
         you're not?            01/01/70 00:00      
            It was just a warning that union type casts are dangerous            01/01/70 00:00      

Back to Subject List