/* ** ################################################################### ** Filename : ds1307.h ** DataSheet : DS1307 64x8, Serial, IIC Real-Time Clock ** REV: 071405 ** Compiler : CodeWarrior compiler ** Date/Time : 03.06.2008 ** Abstract : ** This header implements structures and addresses for the DS1307 ** Registers ** ** Omair Khan ** University of Southern California ** www.omair-khan.com ** ** ** Revisions: ** none ** ** ################################################################### */ #ifndef _DS1307_H #define _DS1307_H /* Types definition */ typedef unsigned char byte; typedef unsigned char dbyte[3]; typedef unsigned int word; typedef unsigned long dword; typedef unsigned long dlong[2]; #pragma MESSAGE DISABLE C1106 /* WARNING C1106: Non-standard bitfield type */ #define DS1307_IIC_ADDR 0xD0 //clock chip addr on MMIC #define DS1307_SEC_ADDR 0x00 #define DS1307_MIN_ADDR 0x01 #define DS1307_HR_ADDR 0x02 #define DS1307_DAY_ADDR 0x03 #define DS1307_DATE_ADDR 0x04 #define DS1307_MONTH_ADDR 0x05 #define DS1307_YEAR_ADDR 0x06 #define DS1307_CTRL_ADDR 0x07 #define DS1307_RAM_ADDR 0x08 //DS1307 56-byte RAM addr 08h-34h /*** Following is user definable located in the RAM. Must be within 08h-34h range ***/ #define DS1307_ALRM0_ADDR 0x08 #define DS1307_ALRM1_ADDR 0x0B /*** Seconds Register Range: 00-59 ***/ typedef union { byte Byte; struct { byte SECL0 :1; /* Seconds Bit 0 */ byte SECL1 :1; /* Seconds Bit 1 */ byte SECL2 :1; /* Seconds Bit 2 */ byte SECL3 :1; /* Seconds Bit 3 */ byte SECH0 :1; /* Seconds 10s Bit 0 */ byte SECH1 :1; /* Seconds 10s Bit 1 */ byte SECH2 :1; /* Seconds 10s Bit 2 */ byte DS1307CH :1; /* Clock Halt */ } Bits; struct { byte SECL :4; byte SECH :3; byte DS1307CH :1; } MergedBits; } SECSTR; SECSTR _CURR_SEC; #define CURR_SEC _CURR_SEC.Byte #define DS1307CH _CURR_SEC.Bits.DS1307CH #define CURR_SEC_SECH _CURR_SEC.MergedBits.SECH #define CURR_SEC_SECL _CURR_SEC.MergedBits.SECL #define CURR_SEC_SECH2 _CURR_SEC.Bits.SECH2 #define CURR_SEC_SECH1 _CURR_SEC.Bits.SECH1 #define CURR_SEC_SECH0 _CURR_SEC.Bits.SECH0 #define CURR_SEC_SECL3 _CURR_SEC.Bits.SECL3 #define CURR_SEC_SECL2 _CURR_SEC.Bits.SECL2 #define CURR_SEC_SECL1 _CURR_SEC.Bits.SECL1 #define CURR_SEC_SECL0 _CURR_SEC.Bits.SECL0 #define CURR_SEC_DS1307CH_MASK 128 #define CURR_SEC_SECH2_MASK 64 #define CURR_SEC_SECH1_MASK 32 #define CURR_SEC_SECH0_MASK 16 #define CURR_SEC_SECL3_MASK 8 #define CURR_SEC_SECL2_MASK 4 #define CURR_SEC_SECL1_MASK 2 #define CURR_SEC_SECL0_MASK 1 SECSTR _PREV_SEC; #define PREV_SEC _PREV_SEC.Byte #define PREV_DS1307CH _PREV_SEC.Bits.DS1307CH #define PREV_SEC_SECH _PREV_SEC.MergedBits.SECH #define PREV_SEC_SECL _PREV_SEC.MergedBits.SECL #define PREV_SEC_SECH2 _PREV_SEC.Bits.SECH2 #define PREV_SEC_SECH1 _PREV_SEC.Bits.SECH1 #define PREV_SEC_SECH0 _PREV_SEC.Bits.SECH0 #define PREV_SEC_SECL3 _PREV_SEC.Bits.SECL3 #define PREV_SEC_SECL2 _PREV_SEC.Bits.SECL2 #define PREV_SEC_SECL1 _PREV_SEC.Bits.SECL1 #define PREV_SEC_SECL0 _PREV_SEC.Bits.SECL0 #define PREV_SEC_DS1307CH_MASK 128 #define PREV_SEC_SECH2_MASK 64 #define PREV_SEC_SECH1_MASK 32 #define PREV_SEC_SECH0_MASK 16 #define PREV_SEC_SECL3_MASK 8 #define PREV_SEC_SECL2_MASK 4 #define PREV_SEC_SECL1_MASK 2 #define PREV_SEC_SECL0_MASK 1 /*** Minutes Register Range: 00-59 ***/ typedef union { byte Byte; struct { byte MINL0 :1; /* Minutes Bit 0 */ byte MINL1 :1; /* Minutes Bit 1 */ byte MINL2 :1; /* Minutes Bit 2 */ byte MINL3 :1; /* Minutes Bit 3 */ byte MINH0 :1; /* Minutes 10s Bit 0 */ byte MINH1 :1; /* Minutes 10s Bit 1 */ byte MINH2 :1; /* Minutes 10s Bit 2 */ byte :1; /* 0 */ } Bits; struct { byte MINL :4; byte MINH :3; byte :1; } MergedBits; } MINSTR; MINSTR _CURR_MIN; #define CURR_MIN _CURR_MIN.Byte #define CURR_MIN_MINH2 _CURR_MIN.Bits.MINH2 #define CURR_MIN_MINH1 _CURR_MIN.Bits.MINH1 #define CURR_MIN_MINH0 _CURR_MIN.Bits.MINH0 #define CURR_MIN_MINH _CURR_MIN.MergedBits.MINH #define CURR_MIN_MINL3 _CURR_MIN.Bits.MINL3 #define CURR_MIN_MINL2 _CURR_MIN.Bits.MINL2 #define CURR_MIN_MINL1 _CURR_MIN.Bits.MINL1 #define CURR_MIN_MINL0 _CURR_MIN.Bits.MINL0 #define CURR_MIN_MINL _CURR_MIN.MergedBits.MINL #define CURR_MIN_MINH2_MASK 128 #define CURR_MIN_MINH1_MASK 64 #define CURR_MIN_MINH0_MASK 32 #define CURR_MIN_MINL3_MASK 16 #define CURR_MIN_MINL2_MASK 8 #define CURR_MIN_MINL1_MASK 4 #define CURR_MIN_MINL0_MASK 2 MINSTR _PREV_MIN; #define PREV_MIN _PREV_MIN.Byte #define PREV_MIN_MINH2 _PREV_MIN.Bits.MINH2 #define PREV_MIN_MINH1 _PREV_MIN.Bits.MINH1 #define PREV_MIN_MINH0 _PREV_MIN.Bits.MINH0 #define PREV_MIN_MINH _PREV_MIN.MergedBits.MINH #define PREV_MIN_MINL3 _PREV_MIN.Bits.MINL3 #define PREV_MIN_MINL2 _PREV_MIN.Bits.MINL2 #define PREV_MIN_MINL1 _PREV_MIN.Bits.MINL1 #define PREV_MIN_MINL0 _PREV_MIN.Bits.MINL0 #define PREV_MIN_MINL _PREV_MIN.MergedBits.MINL #define PREV_MIN_MINH2_MASK 128 #define PREV_MIN_MINH1_MASK 64 #define PREV_MIN_MINH0_MASK 32 #define PREV_MIN_MINL3_MASK 16 #define PREV_MIN_MINL2_MASK 8 #define PREV_MIN_MINL1_MASK 4 #define PREV_MIN_MINL0_MASK 2 /*** Hours Register Range: 1-12,+AM/PM,00-23 ***/ typedef union { byte Byte; struct { byte HRL0 :1; /* Hours Bit 0 */ byte HRL1 :1; /* Hours Bit 1 */ byte HRL2 :1; /* Hours Bit 2 */ byte HRL3 :1; /* Hours Bit 3 */ byte HRH0 :1; /* Hours 10s Bit 0 */ byte HRH1AMPM :1; /* Hours 10s Bit 1 in 24hr mode or AM/PM indicator in 12hr mode*/ byte HRMODE :1; /* Hours Mode Select 12/24 */ byte :1; /* 0 */ } Bits; struct { byte :4; byte HR24H :2; byte :2; } Merged24hrBits; struct { byte HRL :4; byte HR12H :1; byte AMPM :1; byte :2; } Merged12hrBits; } HRSTR; HRSTR _CURR_HR; #define CURR_HR _CURR_HR.Byte #define HRMODE _CURR_HR.Bits.HRMODE #define CURR_HR_HRH1AMPM _CURR_HR.Bits.HRH1AMPM #define CURR_HR_HRH0 _CURR_HR.Bits.HRH0 #define CURR_HR_HRL3 _CURR_HR.Bits.HRL3 #define CURR_HR_HRL2 _CURR_HR.Bits.HRL2 #define CURR_HR_HRL1 _CURR_HR.Bits.HRL1 #define CURR_HR_HRL0 _CURR_HR.Bits.HRL0 #define CURR_HR_HR24H _CURR_HR.Merged24hrBits.HR24H #define CURR_HR_HR12H _CURR_HR.Merged12hrBits.HR12H #define CURR_HR_HRL _CURR_HR.Merged12hrBits.HRL #define CURR_AMPM _CURR_HR.Merged12hrBits.AMPM #define HRMODE_MASK 128 #define CURR_HR_HRH1AMPM_MASK 64 #define CURR_HR_HRH0_MASK 32 #define CURR_HR_HRL3_MASK 16 #define CURR_HR_HRL2_MASK 8 #define CURR_HR_HRL1_MASK 4 #define CURR_HR_HRL0_MASK 2 HRSTR _PREV_HR; #define PREV_HR _PREV_HR.Byte #define PREV_HRMODE _PREV_HR.Bits.HRMODE #define PREV_HR_HRH1AMPM _PREV_HR.Bits.HRH1AMPM #define PREV_HR_HRH0 _PREV_HR.Bits.HRH0 #define PREV_HR_HRL3 _PREV_HR.Bits.HRL3 #define PREV_HR_HRL2 _PREV_HR.Bits.HRL2 #define PREV_HR_HRL1 _PREV_HR.Bits.HRL1 #define PREV_HR_HRL0 _PREV_HR.Bits.HRL0 #define PREV_HR_HR24H _PREV_HR.Merged24hrBits.HR24H #define PREV_HR_HR12H _PREV_HR.Merged12hrBits.HR12H #define PREV_HR_HRL _PREV_HR.Merged12hrBits.HRL #define PREV_AMPM _PREV_HR.Merged12hrBits.AMPM #define HRMODE_MASK 128 #define PREV_HR_HRH1AMPM_MASK 64 #define PREV_HR_HRH0_MASK 32 #define PREV_HR_HRL3_MASK 16 #define PREV_HR_HRL2_MASK 8 #define PREV_HR_HRL1_MASK 4 #define PREV_HR_HRL0_MASK 2 /*** Day Register Range: 01-07 ***/ typedef union { byte Byte; struct { byte DAY0 :1; /* Day Bit 0 */ byte DAY1 :1; /* Day Bit 1 */ byte DAY2 :1; /* Day Bit 2 */ byte :1; /* 0 */ byte :1; /* 0 */ byte :1; /* 0 */ byte :1; /* 0 */ byte :1; /* 0 */ } Bits; struct { byte DAYL :4; byte :4; } MergedBits; } DAYSTR; DAYSTR _CURR_DAY; #define CURR_DAY _CURR_DAY.Byte #define CURR_DAY_DAY2 _CURR_DAY.Bits.DAYH2 #define CURR_DAY_DAY1 _CURR_DAY.Bits.DAYH1 #define CURR_DAY_DAY0 _CURR_DAY.Bits.DAYH0 #define CURR_DAY_DAYL _CURR_DAY.MergedBits.DAYL #define CURR_DAY_DAY2_MASK 4 #define CURR_DAY_DAY1_MASK 2 #define CURR_DAY_DAY0_MASK 1 DAYSTR _PREV_DAY; #define PREV_DAY _PREV_DAY.Byte #define PREV_DAY_DAY2 _PREV_DAY.Bits.DAYH2 #define PREV_DAY_DAY1 _PREV_DAY.Bits.DAYH1 #define PREV_DAY_DAY0 _PREV_DAY.Bits.DAYH0 #define PREV_DAY_DAYL _PREV_DAY.MergedBits.DAYL #define PREV_DAY_DAY2_MASK 4 #define PREV_DAY_DAY1_MASK 2 #define PREV_DAY_DAY0_MASK 1 /*** Date Register Range: 01-31 ***/ typedef union { byte Byte; struct { byte DATEL0 :1; /* DATE Bit 0 */ byte DATEL1 :1; /* DATE Bit 1 */ byte DATEL2 :1; /* DATE Bit 2 */ byte DATEL3 :1; /* DATE Bit 3 */ byte DATEH0 :1; /* DATE 10s Bit 0 */ byte DATEH1 :1; /* DATE 10s Bit 1 */ byte :1; /* 0 */ byte :1; /* 0 */ } Bits; struct { byte DATEL :4; byte DATEH :2; byte :2; } MergedBits; } DATESTR; DATESTR _CURR_DATE; #define CURR_DATE _CURR_DATE.Byte #define CURR_DATE_DATEH1 _CURR_DATE.Bits.DATEH1 #define CURR_DATE_DATEH0 _CURR_DATE.Bits.DATEH0 #define CURR_DATE_DATEH _CURR_DATE.MergedBits.DATEH #define CURR_DATE_DATEL3 _CURR_DATE.Bits.DATEL3 #define CURR_DATE_DATEL2 _CURR_DATE.Bits.DATEL2 #define CURR_DATE_DATEL1 _CURR_DATE.Bits.DATEL1 #define CURR_DATE_DATEL0 _CURR_DATE.Bits.DATEL0 #define CURR_DATE_DATEL _CURR_DATE.MergedBits.DATEL #define CURR_DATE_DATEH1_MASK 64 #define CURR_DATE_DATEH0_MASK 32 #define CURR_DATE_DATEL3_MASK 16 #define CURR_DATE_DATEL2_MASK 8 #define CURR_DATE_DATEL1_MASK 4 #define CURR_DATE_DATEL0_MASK 2 DATESTR _PREV_DATE; #define PREV_DATE _PREV_DATE.Byte #define PREV_DATE_DATEH1 _PREV_DATE.Bits.DATEH1 #define PREV_DATE_DATEH0 _PREV_DATE.Bits.DATEH0 #define PREV_DATE_DATEH _PREV_DATE.MergedBits.DATEH #define PREV_DATE_DATEL3 _PREV_DATE.Bits.DATEL3 #define PREV_DATE_DATEL2 _PREV_DATE.Bits.DATEL2 #define PREV_DATE_DATEL1 _PREV_DATE.Bits.DATEL1 #define PREV_DATE_DATEL0 _PREV_DATE.Bits.DATEL0 #define PREV_DATE_DATEL _PREV_DATE.MergedBits.DATEL #define PREV_DATE_DATEH1_MASK 64 #define PREV_DATE_DATEH0_MASK 32 #define PREV_DATE_DATEL3_MASK 16 #define PREV_DATE_DATEL2_MASK 8 #define PREV_DATE_DATEL1_MASK 4 #define PREV_DATE_DATEL0_MASK 2 /*** Month Register Range: 01-12 ***/ typedef union { byte Byte; struct { byte MONTHL0 :1; /* MONTH Bit 0 */ byte MONTHL1 :1; /* MONTH Bit 1 */ byte MONTHL2 :1; /* MONTH Bit 2 */ byte MONTHL3 :1; /* MONTH Bit 3 */ byte MONTHH0 :1; /* MONTH 10s Bit 0 */ byte :1; /* 0 */ byte :1; /* 0 */ byte :1; /* 0 */ } Bits; struct { byte MONTHL :4; byte MONTHH :1; byte :3; } MergedBits; } MONTHSTR; MONTHSTR _CURR_MONTH; #define CURR_MONTH _CURR_MONTH.Byte #define CURR_MONTH_MONTHH0 _CURR_MONTH.Bits.MONTHH0 #define CURR_MONTH_MONTHH _CURR_MONTH.MergedBits.MONTHH #define CURR_MONTH_MONTHL3 _CURR_MONTH.Bits.MONTHL3 #define CURR_MONTH_MONTHL2 _CURR_MONTH.Bits.MONTHL2 #define CURR_MONTH_MONTHL1 _CURR_MONTH.Bits.MONTHL1 #define CURR_MONTH_MONTHL0 _CURR_MONTH.Bits.MONTHL0 #define CURR_MONTH_MONTHL _CURR_MONTH.MergedBits.MONTHL #define CURR_MONTH_MONTHH0_MASK 32 #define CURR_MONTH_MONTHL3_MASK 16 #define CURR_MONTH_MONTHL2_MASK 8 #define CURR_MONTH_MONTHL1_MASK 4 #define CURR_MONTH_MONTHL0_MASK 2 MONTHSTR _PREV_MONTH; #define PREV_MONTH _PREV_MONTH.Byte #define PREV_MONTH_MONTHH0 _PREV_MONTH.Bits.MONTHH0 #define PREV_MONTH_MONTHH _PREV_MONTH.MergedBits.MONTHH #define PREV_MONTH_MONTHL3 _PREV_MONTH.Bits.MONTHL3 #define PREV_MONTH_MONTHL2 _PREV_MONTH.Bits.MONTHL2 #define PREV_MONTH_MONTHL1 _PREV_MONTH.Bits.MONTHL1 #define PREV_MONTH_MONTHL0 _PREV_MONTH.Bits.MONTHL0 #define PREV_MONTH_MONTHL _PREV_MONTH.MergedBits.MONTHL #define PREV_MONTH_MONTHH0_MASK 32 #define PREV_MONTH_MONTHL3_MASK 16 #define PREV_MONTH_MONTHL2_MASK 8 #define PREV_MONTH_MONTHL1_MASK 4 #define PREV_MONTH_MONTHL0_MASK 2 /*** Year Register Range: 00-99 ***/ typedef union { byte Byte; struct { byte YEARL0 :1; /* YEAR Bit 0 */ byte YEARL1 :1; /* YEAR Bit 1 */ byte YEARL2 :1; /* YEAR Bit 2 */ byte YEARL3 :1; /* YEAR Bit 3 */ byte YEARH0 :1; /* YEAR 10s Bit 0 */ byte YEARH1 :1; /* YEAR 10s Bit 1 */ byte YEARH2 :1; /* YEAR 10s Bit 2 */ byte YEARH3 :1; /* YEAR 10s Bit 3 */ } Bits; struct { byte YEARL :4; byte YEARH :4; } MergedBits; } YEARSTR; YEARSTR _CURR_YEAR; #define CURR_YEAR _CURR_YEAR.Byte #define CURR_YEAR_YEARH3 _CURR_YEAR.Bits.YEARH3 #define CURR_YEAR_YEARH2 _CURR_YEAR.Bits.YEARH2 #define CURR_YEAR_YEARH1 _CURR_YEAR.Bits.YEARH1 #define CURR_YEAR_YEARH0 _CURR_YEAR.Bits.YEARH0 #define CURR_YEAR_YEARH _CURR_YEAR.MergedBits.YEARH #define CURR_YEAR_YEARL3 _CURR_YEAR.Bits.YEARL3 #define CURR_YEAR_YEARL2 _CURR_YEAR.Bits.YEARL2 #define CURR_YEAR_YEARL1 _CURR_YEAR.Bits.YEARL1 #define CURR_YEAR_YEARL0 _CURR_YEAR.Bits.YEARL0 #define CURR_YEAR_YEARL _CURR_YEAR.MergedBits.YEARL #define CURR_YEAR_YEARH3_MASK 128 #define CURR_YEAR_YEARH2_MASK 64 #define CURR_YEAR_YEARH1_MASK 32 #define CURR_YEAR_YEARH0_MASK 16 #define CURR_YEAR_YEARL3_MASK 8 #define CURR_YEAR_YEARL2_MASK 4 #define CURR_YEAR_YEARL1_MASK 2 #define CURR_YEAR_YEARL0_MASK 1 YEARSTR _PREV_YEAR; #define PREV_YEAR _PREV_YEAR.Byte #define PREV_YEAR_YEARH3 _PREV_YEAR.Bits.YEARH3 #define PREV_YEAR_YEARH2 _PREV_YEAR.Bits.YEARH2 #define PREV_YEAR_YEARH1 _PREV_YEAR.Bits.YEARH1 #define PREV_YEAR_YEARH0 _PREV_YEAR.Bits.YEARH0 #define PREV_YEAR_YEARH _PREV_YEAR.MergedBits.YEARH #define PREV_YEAR_YEARL3 _PREV_YEAR.Bits.YEARL3 #define PREV_YEAR_YEARL2 _PREV_YEAR.Bits.YEARL2 #define PREV_YEAR_YEARL1 _PREV_YEAR.Bits.YEARL1 #define PREV_YEAR_YEARL0 _PREV_YEAR.Bits.YEARL0 #define PREV_YEAR_YEARL _PREV_YEAR.MergedBits.YEARL #define PREV_YEAR_YEARH3_MASK 128 #define PREV_YEAR_YEARH2_MASK 64 #define PREV_YEAR_YEARH1_MASK 32 #define PREV_YEAR_YEARH0_MASK 16 #define PREV_YEAR_YEARL3_MASK 8 #define PREV_YEAR_YEARL2_MASK 4 #define PREV_YEAR_YEARL1_MASK 2 #define PREV_YEAR_YEARL0_MASK 1 /*** Control Register ***/ typedef union { byte Byte; struct { byte RS0 :1; /* RS0 - LSB of Rate Select. These bits control the freq of the sqr wave output when the output is enabled. */ byte RS1 :1; /* RS1 - MSB of Rate Select */ byte :1; /* 0 */ byte :1; /* 0 */ byte SQWE :1; /* Sqware wave Enable when =1 */ byte :1; /* 0 */ byte :1; /* 0 */ byte OUT :1; /* Output Control. This bit controls the output level of the SQW/OUT pin when the output is DISABLED. */ } Bits; struct { byte RS :2; byte :6; } MergedBits; } CTRLSTR; CTRLSTR _DS1307_CTRL; #define DS1307_CTRL _DS1307_CTRL.Byte #define DS1307_CTRL_RS _DS1307_CTRL.MergedBits.RS #define DS1307_CTRL_RS0 _DS1307_CTRL.Bits.RS0 #define DS1307_CTRL_RS1 _DS1307_CTRL.Bits.RS1 #define DS1307_CTRL_SQWE _DS1307_CTRL.Bits.SQWE #define DS1307_CTRL_OUT _DS1307_CTRL.Bits.OUT #define DS1307_CTRL_OUT_MASK 128 #define DS1307_CTRL_SQWE_MASK 16 #define DS1307_CTRL_RS1_MASK 2 #define DS1307_CTRL_RS0_MASK 1 /** FOLLOWING IS FOR USER DEFINED RAM AREA **/ /*** ALRM RAM ***/ typedef union { dbyte dByte; struct { byte ALRMML0 :1; /* ALRM MIN Bit 0 */ byte ALRMML1 :1; /* ALRM MIN Bit 1 */ byte ALRMML2 :1; /* ALRM MIN Bit 2 */ byte ALRMML3 :1; /* ALRM MIN Bit 3 */ byte ALRMMH0 :1; /* ALRM MIN 10s Bit 0 */ byte ALRMMH1 :1; /* ALRM MIN 10s Bit 1 */ byte ALRMMH2 :1; /* ALRM MIN 10s Bit 2 */ byte ALRMMH3 :1; /* ALRM MIN 10s Bit 3 */ byte ALRMHRL0 :1; /* ALRM HR Bit 0 */ byte ALRMHRL1 :1; /* ALRM HR Bit 1 */ byte ALRMHRL2 :1; /* ALRM HR Bit 2 */ byte ALRMHRL3 :1; /* ALRM HR Bit 3 */ byte ALRMHRH0 :1; /* ALRM HR 10s Bit 0 */ byte AMPM :1; /* ALRM AMPM */ byte :1; /* 1 */ byte :1; /* 0 */ byte ALRMDAYL0 :1; /* ALRM DAY Bit 0 */ byte ALRMDAYL1 :1; /* ALRM DAY Bit 1 */ byte ALRMDAYL2 :1; /* ALRM DAY Bit 2 */ byte :1; /* 0 */ byte :1; /* 0 */ byte :1; /* 0 */ byte :1; /* 0 */ byte ONOFF :1; /* ON or OFF */ } Bits; struct { byte ALRMML :4; byte ALRMMH :4; byte ALRMHRL :4; byte ALRMHRH :1; byte :3; byte ALRMDAYL :4; byte :4; } MergedBits; struct { byte ALRMM :8; byte ALRMHR :8; byte ALRMDAY :8; } MergedBitsA; } ALRMSTR; /** ALRM **/ ALRMSTR _ALRM; #define ALRM _ALRM.dByte #define ALRM_MIN _ALRM.MergedBitsA.ALRMM #define ALRM_HR _ALRM.MergedBitsA.ALRMHR #define ALRM_DAY _ALRM.MergedBitsA.ALRMDAY #define ALRM_MIN_MINH _ALRM.MergedBits.ALRMMH #define ALRM_MIN_MINL _ALRM.MergedBits.ALRMML #define ALRM_HR_HRH _ALRM.MergedBits.ALRMHRH #define ALRM_HR_HRL _ALRM.MergedBits.ALRMHRL #define ALRM_DAY_DAY _ALRM.MergedBits.ALRMDAYL #define ALRM_MIN_MINH3 _ALRM.Bits.ALRMMH3 #define ALRM_MIN_MINH2 _ALRM.Bits.ALRMMH2 #define ALRM_MIN_MINH1 _ALRM.Bits.ALRMMH1 #define ALRM_MIN_MINH0 _ALRM.Bits.ALRMMH0 #define ALRM_MIN_MINL3 _ALRM.Bits.ALRMML3 #define ALRM_MIN_MINL2 _ALRM.Bits.ALRMML2 #define ALRM_MIN_MINL1 _ALRM.Bits.ALRMML1 #define ALRM_MIN_MINL0 _ALRM.Bits.ALRMML0 #define ALRM_AMPM _ALRM.Bits.AMPM #define ALRM_HR_HRH0 _ALRM.Bits.ALRMHRH0 #define ALRM_HR_HRL3 _ALRM.Bits.ALRMHRL3 #define ALRM_HR_HRL2 _ALRM.Bits.ALRMHRL2 #define ALRM_HR_HRL1 _ALRM.Bits.ALRMHRL1 #define ALRM_HR_HRL0 _ALRM.Bits.ALRMHRL0 #define ALRM_ONOFF _ALRM.Bits.ONOFF #define ALRM_DAY_DAY3 _ALRM.Bits.ALRMDAYL3 #define ALRM_DAY_DAY2 _ALRM.Bits.ALRMDAYL2 #define ALRM_DAY_DAY1 _ALRM.Bits.ALRMDAYL1 #define ALRM_DAY_DAY0 _ALRM.Bits.ALRMDAYL0 #define ALRM_ONOFF_MASK 524288 //19 #define ALRM_DAY_DAY2_MASK 262144 //18 #define ALRM_DAY_DAY1_MASK 131072 //17 #define ALRM_DAY_DAY0_MASK 65536 //16 #define ALRM_AMPM_MASK 8192 //13 #define ALRM_HR_HRH0_MASK 4096 //12 #define ALRM_HR_HRL3_MASK 2048 //11 #define ALRM_HR_HRL2_MASK 1024 //10 #define ALRM_HR_HRL1_MASK 512 //9 #define ALRM_HR_HRL0_MASK 256 //8 #define ALRM_MIN_MINH3_MASK 128 //7 #define ALRM_MIN_MINH2_MASK 64 //6 #define ALRM_MIN_MINH1_MASK 32 //5 #define ALRM_MIN_MINH0_MASK 16 //4 #define ALRM_MIN_MINL3_MASK 8 //3 #define ALRM_MIN_MINL2_MASK 4 //2 #define ALRM_MIN_MINL1_MASK 2 //1 #define ALRM_MIN_MINL0_MASK 1 //0 /** ALRM 0 **/ ALRMSTR _ALRM0; #define ALRM0 _ALRM0.dByte #define ALRM0_MIN _ALRM0.MergedBitsA.ALRMM #define ALRM0_HR _ALRM0.MergedBitsA.ALRMHR #define ALRM0_DAY _ALRM0.MergedBitsA.ALRMDAY #define ALRM0_MIN_MINH _ALRM0.MergedBits.ALRMMH #define ALRM0_MIN_MINL _ALRM0.MergedBits.ALRMML #define ALRM0_HR_HRH _ALRM0.MergedBits.ALRMHRH #define ALRM0_HR_HRL _ALRM0.MergedBits.ALRMHRL #define ALRM0_DAY_DAY _ALRM0.MergedBits.ALRMDAYL #define ALRM0_MIN_MINH3 _ALRM0.Bits.ALRMMH3 #define ALRM0_MIN_MINH2 _ALRM0.Bits.ALRMMH2 #define ALRM0_MIN_MINH1 _ALRM0.Bits.ALRMMH1 #define ALRM0_MIN_MINH0 _ALRM0.Bits.ALRMMH0 #define ALRM0_MIN_MINL3 _ALRM0.Bits.ALRMML3 #define ALRM0_MIN_MINL2 _ALRM0.Bits.ALRMML2 #define ALRM0_MIN_MINL1 _ALRM0.Bits.ALRMML1 #define ALRM0_MIN_MINL0 _ALRM0.Bits.ALRMML0 #define ALRM0_AMPM _ALRM0.Bits.AMPM #define ALRM0_HR_HRH0 _ALRM0.Bits.ALRMHRH0 #define ALRM0_HR_HRL3 _ALRM0.Bits.ALRMHRL3 #define ALRM0_HR_HRL2 _ALRM0.Bits.ALRMHRL2 #define ALRM0_HR_HRL1 _ALRM0.Bits.ALRMHRL1 #define ALRM0_HR_HRL0 _ALRM0.Bits.ALRMHRL0 #define ALRM0_ONOFF _ALRM0.Bits.ONOFF #define ALRM0_DAY_DAY3 _ALRM0.Bits.ALRMDAYL3 #define ALRM0_DAY_DAY2 _ALRM0.Bits.ALRMDAYL2 #define ALRM0_DAY_DAY1 _ALRM0.Bits.ALRMDAYL1 #define ALRM0_DAY_DAY0 _ALRM0.Bits.ALRMDAYL0 #define ALRM0_ONOFF_MASK 524288 //19 #define ALRM0_DAY_DAY2_MASK 262144 //18 #define ALRM0_DAY_DAY1_MASK 131072 //17 #define ALRM0_DAY_DAY0_MASK 65536 //16 #define ALRM0_AMPM_MASK 8192 //13 #define ALRM0_HR_HRH0_MASK 4096 //12 #define ALRM0_HR_HRL3_MASK 2048 //11 #define ALRM0_HR_HRL2_MASK 1024 //10 #define ALRM0_HR_HRL1_MASK 512 //9 #define ALRM0_HR_HRL0_MASK 256 //8 #define ALRM0_MIN_MINH3_MASK 128 //7 #define ALRM0_MIN_MINH2_MASK 64 //6 #define ALRM0_MIN_MINH1_MASK 32 //5 #define ALRM0_MIN_MINH0_MASK 16 //4 #define ALRM0_MIN_MINL3_MASK 8 //3 #define ALRM0_MIN_MINL2_MASK 4 //2 #define ALRM0_MIN_MINL1_MASK 2 //1 #define ALRM0_MIN_MINL0_MASK 1 //0 /** ALRM 1 **/ ALRMSTR _ALRM1; #define ALRM1 _ALRM1.dByte #define ALRM1_MIN _ALRM1.MergedBitsA.ALRMM #define ALRM1_HR _ALRM1.MergedBitsA.ALRMHR #define ALRM1_DAY _ALRM1.MergedBitsA.ALRMDAY #define ALRM1_MIN_MINH _ALRM1.MergedBits.ALRMMH #define ALRM1_MIN_MINL _ALRM1.MergedBits.ALRMML #define ALRM1_HR_HRH _ALRM1.MergedBits.ALRMHRH #define ALRM1_HR_HRL _ALRM1.MergedBits.ALRMHRL #define ALRM1_DAY_DAY _ALRM1.MergedBits.ALRMDAYL #define ALRM1_MIN_MINH3 _ALRM1.Bits.ALRMMH3 #define ALRM1_MIN_MINH2 _ALRM1.Bits.ALRMMH2 #define ALRM1_MIN_MINH1 _ALRM1.Bits.ALRMMH1 #define ALRM1_MIN_MINH0 _ALRM1.Bits.ALRMMH0 #define ALRM1_MIN_MINL3 _ALRM1.Bits.ALRMML3 #define ALRM1_MIN_MINL2 _ALRM1.Bits.ALRMML2 #define ALRM1_MIN_MINL1 _ALRM1.Bits.ALRMML1 #define ALRM1_MIN_MINL0 _ALRM1.Bits.ALRMML0 #define ALRM1_AMPM _ALRM1.Bits.AMPM #define ALRM1_HR_HRH0 _ALRM1.Bits.ALRMHRH0 #define ALRM1_HR_HRL3 _ALRM1.Bits.ALRMHRL3 #define ALRM1_HR_HRL2 _ALRM1.Bits.ALRMHRL2 #define ALRM1_HR_HRL1 _ALRM1.Bits.ALRMHRL1 #define ALRM1_HR_HRL0 _ALRM1.Bits.ALRMHRL0 #define ALRM1_ONOFF _ALRM1.Bits.ONOFF #define ALRM1_DAY_DAY3 _ALRM1.Bits.ALRMDAYL3 #define ALRM1_DAY_DAY2 _ALRM1.Bits.ALRMDAYL2 #define ALRM1_DAY_DAY1 _ALRM1.Bits.ALRMDAYL1 #define ALRM1_DAY_DAY0 _ALRM1.Bits.ALRMDAYL0 #define ALRM1_ONOFF_MASK 524288 //19 #define ALRM1_DAY_DAY2_MASK 262144 //18 #define ALRM1_DAY_DAY1_MASK 131072 //17 #define ALRM1_DAY_DAY0_MASK 65536 //16 #define ALRM1_AMPM_MASK 8192 //13 #define ALRM1_HR_HRH0_MASK 4096 //12 #define ALRM1_HR_HRL3_MASK 2048 //11 #define ALRM1_HR_HRL2_MASK 1024 //10 #define ALRM1_HR_HRL1_MASK 512 //9 #define ALRM1_HR_HRL0_MASK 256 //8 #define ALRM1_MIN_MINH3_MASK 128 //7 #define ALRM1_MIN_MINH2_MASK 64 //6 #define ALRM1_MIN_MINH1_MASK 32 //5 #define ALRM1_MIN_MINH0_MASK 16 //4 #define ALRM1_MIN_MINL3_MASK 8 //3 #define ALRM1_MIN_MINL2_MASK 4 //2 #define ALRM1_MIN_MINL1_MASK 2 //1 #define ALRM1_MIN_MINL0_MASK 1 //0 /** ALRM 2 **/ ALRMSTR _ALRM2; #define ALRM2 _ALRM2.dByte #define ALRM2_MIN _ALRM2.MergedBitsA.ALRMM #define ALRM2_HR _ALRM2.MergedBitsA.ALRMHR #define ALRM2_DAY _ALRM2.MergedBitsA.ALRMDAY #define ALRM2_MIN_MINH _ALRM2.MergedBits.ALRMMH #define ALRM2_MIN_MINL _ALRM2.MergedBits.ALRMML #define ALRM2_HR_HRH _ALRM2.MergedBits.ALRMHRH #define ALRM2_HR_HRL _ALRM2.MergedBits.ALRMHRL #define ALRM2_DAY_DAY _ALRM2.MergedBits.ALRMDAYL #define ALRM2_MIN_MINH3 _ALRM2.Bits.ALRMMH3 #define ALRM2_MIN_MINH2 _ALRM2.Bits.ALRMMH2 #define ALRM2_MIN_MINH1 _ALRM2.Bits.ALRMMH1 #define ALRM2_MIN_MINH0 _ALRM2.Bits.ALRMMH0 #define ALRM2_MIN_MINL3 _ALRM2.Bits.ALRMML3 #define ALRM2_MIN_MINL2 _ALRM2.Bits.ALRMML2 #define ALRM2_MIN_MINL1 _ALRM2.Bits.ALRMML1 #define ALRM2_MIN_MINL0 _ALRM2.Bits.ALRMML0 #define ALRM2_AMPM _ALRM2.Bits.AMPM #define ALRM2_HR_HRH0 _ALRM2.Bits.ALRMHRH0 #define ALRM2_HR_HRL3 _ALRM2.Bits.ALRMHRL3 #define ALRM2_HR_HRL2 _ALRM2.Bits.ALRMHRL2 #define ALRM2_HR_HRL1 _ALRM2.Bits.ALRMHRL1 #define ALRM2_HR_HRL0 _ALRM2.Bits.ALRMHRL0 #define ALRM2_ONOFF _ALRM2.Bits.ONOFF #define ALRM2_DAY_DAY3 _ALRM2.Bits.ALRMDAYL3 #define ALRM2_DAY_DAY2 _ALRM2.Bits.ALRMDAYL2 #define ALRM2_DAY_DAY1 _ALRM2.Bits.ALRMDAYL1 #define ALRM2_DAY_DAY0 _ALRM2.Bits.ALRMDAYL0 #define ALRM2_ONOFF_MASK 524288 //19 #define ALRM2_DAY_DAY2_MASK 262144 //18 #define ALRM2_DAY_DAY1_MASK 131072 //17 #define ALRM2_DAY_DAY0_MASK 65536 //16 #define ALRM2_AMPM_MASK 8192 //13 #define ALRM2_HR_HRH0_MASK 4096 //12 #define ALRM2_HR_HRL3_MASK 2048 //11 #define ALRM2_HR_HRL2_MASK 1024 //10 #define ALRM2_HR_HRL1_MASK 512 //9 #define ALRM2_HR_HRL0_MASK 256 //8 #define ALRM2_MIN_MINH3_MASK 128 //7 #define ALRM2_MIN_MINH2_MASK 64 //6 #define ALRM2_MIN_MINH1_MASK 32 //5 #define ALRM2_MIN_MINH0_MASK 16 //4 #define ALRM2_MIN_MINL3_MASK 8 //3 #define ALRM2_MIN_MINL2_MASK 4 //2 #define ALRM2_MIN_MINL1_MASK 2 //1 #define ALRM2_MIN_MINL0_MASK 1 //0 /** ALRM 3 **/ ALRMSTR _ALRM3; #define ALRM3 _ALRM3.dByte #define ALRM3_MIN _ALRM3.MergedBitsA.ALRMM #define ALRM3_HR _ALRM3.MergedBitsA.ALRMHR #define ALRM3_DAY _ALRM3.MergedBitsA.ALRMDAY #define ALRM3_MIN_MINH _ALRM3.MergedBits.ALRMMH #define ALRM3_MIN_MINL _ALRM3.MergedBits.ALRMML #define ALRM3_HR_HRH _ALRM3.MergedBits.ALRMHRH #define ALRM3_HR_HRL _ALRM3.MergedBits.ALRMHRL #define ALRM3_DAY_DAY _ALRM3.MergedBits.ALRMDAYL #define ALRM3_MIN_MINH3 _ALRM3.Bits.ALRMMH3 #define ALRM3_MIN_MINH2 _ALRM3.Bits.ALRMMH2 #define ALRM3_MIN_MINH1 _ALRM3.Bits.ALRMMH1 #define ALRM3_MIN_MINH0 _ALRM3.Bits.ALRMMH0 #define ALRM3_MIN_MINL3 _ALRM3.Bits.ALRMML3 #define ALRM3_MIN_MINL2 _ALRM3.Bits.ALRMML2 #define ALRM3_MIN_MINL1 _ALRM3.Bits.ALRMML1 #define ALRM3_MIN_MINL0 _ALRM3.Bits.ALRMML0 #define ALRM3_AMPM _ALRM3.Bits.AMPM #define ALRM3_HR_HRH0 _ALRM3.Bits.ALRMHRH0 #define ALRM3_HR_HRL3 _ALRM3.Bits.ALRMHRL3 #define ALRM3_HR_HRL2 _ALRM3.Bits.ALRMHRL2 #define ALRM3_HR_HRL1 _ALRM3.Bits.ALRMHRL1 #define ALRM3_HR_HRL0 _ALRM3.Bits.ALRMHRL0 #define ALRM3_ONOFF _ALRM3.Bits.ONOFF #define ALRM3_DAY_DAY3 _ALRM3.Bits.ALRMDAYL3 #define ALRM3_DAY_DAY2 _ALRM3.Bits.ALRMDAYL2 #define ALRM3_DAY_DAY1 _ALRM3.Bits.ALRMDAYL1 #define ALRM3_DAY_DAY0 _ALRM3.Bits.ALRMDAYL0 #define ALRM3_ONOFF_MASK 524288 //19 #define ALRM3_DAY_DAY2_MASK 262144 //18 #define ALRM3_DAY_DAY1_MASK 131072 //17 #define ALRM3_DAY_DAY0_MASK 65536 //16 #define ALRM3_AMPM_MASK 8192 //13 #define ALRM3_HR_HRH0_MASK 4096 //12 #define ALRM3_HR_HRL3_MASK 2048 //11 #define ALRM3_HR_HRL2_MASK 1024 //10 #define ALRM3_HR_HRL1_MASK 512 //9 #define ALRM3_HR_HRL0_MASK 256 //8 #define ALRM3_MIN_MINH3_MASK 128 //7 #define ALRM3_MIN_MINH2_MASK 64 //6 #define ALRM3_MIN_MINH1_MASK 32 //5 #define ALRM3_MIN_MINH0_MASK 16 //4 #define ALRM3_MIN_MINL3_MASK 8 //3 #define ALRM3_MIN_MINL2_MASK 4 //2 #define ALRM3_MIN_MINL1_MASK 2 //1 #define ALRM3_MIN_MINL0_MASK 1 //0 /** ALRM 4 **/ ALRMSTR _ALRM4; #define ALRM4 _ALRM4.dByte #define ALRM4_MIN _ALRM4.MergedBitsA.ALRMM #define ALRM4_HR _ALRM4.MergedBitsA.ALRMHR #define ALRM4_DAY _ALRM4.MergedBitsA.ALRMDAY #define ALRM4_MIN_MINH _ALRM4.MergedBits.ALRMMH #define ALRM4_MIN_MINL _ALRM4.MergedBits.ALRMML #define ALRM4_HR_HRH _ALRM4.MergedBits.ALRMHRH #define ALRM4_HR_HRL _ALRM4.MergedBits.ALRMHRL #define ALRM4_DAY_DAY _ALRM4.MergedBits.ALRMDAYL #define ALRM4_MIN_MINH3 _ALRM4.Bits.ALRMMH3 #define ALRM4_MIN_MINH2 _ALRM4.Bits.ALRMMH2 #define ALRM4_MIN_MINH1 _ALRM4.Bits.ALRMMH1 #define ALRM4_MIN_MINH0 _ALRM4.Bits.ALRMMH0 #define ALRM4_MIN_MINL3 _ALRM4.Bits.ALRMML3 #define ALRM4_MIN_MINL2 _ALRM4.Bits.ALRMML2 #define ALRM4_MIN_MINL1 _ALRM4.Bits.ALRMML1 #define ALRM4_MIN_MINL0 _ALRM4.Bits.ALRMML0 #define ALRM4_AMPM _ALRM4.Bits.AMPM #define ALRM4_HR_HRH0 _ALRM4.Bits.ALRMHRH0 #define ALRM4_HR_HRL3 _ALRM4.Bits.ALRMHRL3 #define ALRM4_HR_HRL2 _ALRM4.Bits.ALRMHRL2 #define ALRM4_HR_HRL1 _ALRM4.Bits.ALRMHRL1 #define ALRM4_HR_HRL0 _ALRM4.Bits.ALRMHRL0 #define ALRM4_ONOFF _ALRM4.Bits.ONOFF #define ALRM4_DAY_DAY3 _ALRM4.Bits.ALRMDAYL3 #define ALRM4_DAY_DAY2 _ALRM4.Bits.ALRMDAYL2 #define ALRM4_DAY_DAY1 _ALRM4.Bits.ALRMDAYL1 #define ALRM4_DAY_DAY0 _ALRM4.Bits.ALRMDAYL0 #define ALRM4_ONOFF_MASK 524288 //19 #define ALRM4_DAY_DAY2_MASK 262144 //18 #define ALRM4_DAY_DAY1_MASK 131072 //17 #define ALRM4_DAY_DAY0_MASK 65536 //16 #define ALRM4_AMPM_MASK 8192 //13 #define ALRM4_HR_HRH0_MASK 4096 //12 #define ALRM4_HR_HRL3_MASK 2048 //11 #define ALRM4_HR_HRL2_MASK 1024 //10 #define ALRM4_HR_HRL1_MASK 512 //9 #define ALRM4_HR_HRL0_MASK 256 //8 #define ALRM4_MIN_MINH3_MASK 128 //7 #define ALRM4_MIN_MINH2_MASK 64 //6 #define ALRM4_MIN_MINH1_MASK 32 //5 #define ALRM4_MIN_MINH0_MASK 16 //4 #define ALRM4_MIN_MINL3_MASK 8 //3 #define ALRM4_MIN_MINL2_MASK 4 //2 #define ALRM4_MIN_MINL1_MASK 2 //1 #define ALRM4_MIN_MINL0_MASK 1 //0 /** ALRM 5 **/ ALRMSTR _ALRM5; #define ALRM5 _ALRM5.dByte #define ALRM5_MIN _ALRM5.MergedBitsA.ALRMM #define ALRM5_HR _ALRM5.MergedBitsA.ALRMHR #define ALRM5_DAY _ALRM5.MergedBitsA.ALRMDAY #define ALRM5_MIN_MINH _ALRM5.MergedBits.ALRMMH #define ALRM5_MIN_MINL _ALRM5.MergedBits.ALRMML #define ALRM5_HR_HRH _ALRM5.MergedBits.ALRMHRH #define ALRM5_HR_HRL _ALRM5.MergedBits.ALRMHRL #define ALRM5_DAY_DAY _ALRM5.MergedBits.ALRMDAYL #define ALRM5_MIN_MINH3 _ALRM5.Bits.ALRMMH3 #define ALRM5_MIN_MINH2 _ALRM5.Bits.ALRMMH2 #define ALRM5_MIN_MINH1 _ALRM5.Bits.ALRMMH1 #define ALRM5_MIN_MINH0 _ALRM5.Bits.ALRMMH0 #define ALRM5_MIN_MINL3 _ALRM5.Bits.ALRMML3 #define ALRM5_MIN_MINL2 _ALRM5.Bits.ALRMML2 #define ALRM5_MIN_MINL1 _ALRM5.Bits.ALRMML1 #define ALRM5_MIN_MINL0 _ALRM5.Bits.ALRMML0 #define ALRM5_AMPM _ALRM5.Bits.AMPM #define ALRM5_HR_HRH0 _ALRM5.Bits.ALRMHRH0 #define ALRM5_HR_HRL3 _ALRM5.Bits.ALRMHRL3 #define ALRM5_HR_HRL2 _ALRM5.Bits.ALRMHRL2 #define ALRM5_HR_HRL1 _ALRM5.Bits.ALRMHRL1 #define ALRM5_HR_HRL0 _ALRM5.Bits.ALRMHRL0 #define ALRM5_ONOFF _ALRM5.Bits.ONOFF #define ALRM5_DAY_DAY3 _ALRM5.Bits.ALRMDAYL3 #define ALRM5_DAY_DAY2 _ALRM5.Bits.ALRMDAYL2 #define ALRM5_DAY_DAY1 _ALRM5.Bits.ALRMDAYL1 #define ALRM5_DAY_DAY0 _ALRM5.Bits.ALRMDAYL0 #define ALRM5_ONOFF_MASK 524288 //19 #define ALRM5_DAY_DAY2_MASK 262144 //18 #define ALRM5_DAY_DAY1_MASK 131072 //17 #define ALRM5_DAY_DAY0_MASK 65536 //16 #define ALRM5_AMPM_MASK 8192 //13 #define ALRM5_HR_HRH0_MASK 4096 //12 #define ALRM5_HR_HRL3_MASK 2048 //11 #define ALRM5_HR_HRL2_MASK 1024 //10 #define ALRM5_HR_HRL1_MASK 512 //9 #define ALRM5_HR_HRL0_MASK 256 //8 #define ALRM5_MIN_MINH3_MASK 128 //7 #define ALRM5_MIN_MINH2_MASK 64 //6 #define ALRM5_MIN_MINH1_MASK 32 //5 #define ALRM5_MIN_MINH0_MASK 16 //4 #define ALRM5_MIN_MINL3_MASK 8 //3 #define ALRM5_MIN_MINL2_MASK 4 //2 #define ALRM5_MIN_MINL1_MASK 2 //1 #define ALRM5_MIN_MINL0_MASK 1 //0 /** ALRM 6 **/ ALRMSTR _ALRM6; #define ALRM6 _ALRM6.dByte #define ALRM6_MIN _ALRM6.MergedBitsA.ALRMM #define ALRM6_HR _ALRM6.MergedBitsA.ALRMHR #define ALRM6_DAY _ALRM6.MergedBitsA.ALRMDAY #define ALRM6_MIN_MINH _ALRM6.MergedBits.ALRMMH #define ALRM6_MIN_MINL _ALRM6.MergedBits.ALRMML #define ALRM6_HR_HRH _ALRM6.MergedBits.ALRMHRH #define ALRM6_HR_HRL _ALRM6.MergedBits.ALRMHRL #define ALRM6_DAY_DAY _ALRM6.MergedBits.ALRMDAYL #define ALRM6_MIN_MINH3 _ALRM6.Bits.ALRMMH3 #define ALRM6_MIN_MINH2 _ALRM6.Bits.ALRMMH2 #define ALRM6_MIN_MINH1 _ALRM6.Bits.ALRMMH1 #define ALRM6_MIN_MINH0 _ALRM6.Bits.ALRMMH0 #define ALRM6_MIN_MINL3 _ALRM6.Bits.ALRMML3 #define ALRM6_MIN_MINL2 _ALRM6.Bits.ALRMML2 #define ALRM6_MIN_MINL1 _ALRM6.Bits.ALRMML1 #define ALRM6_MIN_MINL0 _ALRM6.Bits.ALRMML0 #define ALRM6_AMPM _ALRM6.Bits.AMPM #define ALRM6_HR_HRH0 _ALRM6.Bits.ALRMHRH0 #define ALRM6_HR_HRL3 _ALRM6.Bits.ALRMHRL3 #define ALRM6_HR_HRL2 _ALRM6.Bits.ALRMHRL2 #define ALRM6_HR_HRL1 _ALRM6.Bits.ALRMHRL1 #define ALRM6_HR_HRL0 _ALRM6.Bits.ALRMHRL0 #define ALRM6_ONOFF _ALRM6.Bits.ONOFF #define ALRM6_DAY_DAY3 _ALRM6.Bits.ALRMDAYL3 #define ALRM6_DAY_DAY2 _ALRM6.Bits.ALRMDAYL2 #define ALRM6_DAY_DAY1 _ALRM6.Bits.ALRMDAYL1 #define ALRM6_DAY_DAY0 _ALRM6.Bits.ALRMDAYL0 #define ALRM6_ONOFF_MASK 524288 //19 #define ALRM6_DAY_DAY2_MASK 262144 //18 #define ALRM6_DAY_DAY1_MASK 131072 //17 #define ALRM6_DAY_DAY0_MASK 65536 //16 #define ALRM6_AMPM_MASK 8192 //13 #define ALRM6_HR_HRH0_MASK 4096 //12 #define ALRM6_HR_HRL3_MASK 2048 //11 #define ALRM6_HR_HRL2_MASK 1024 //10 #define ALRM6_HR_HRL1_MASK 512 //9 #define ALRM6_HR_HRL0_MASK 256 //8 #define ALRM6_MIN_MINH3_MASK 128 //7 #define ALRM6_MIN_MINH2_MASK 64 //6 #define ALRM6_MIN_MINH1_MASK 32 //5 #define ALRM6_MIN_MINH0_MASK 16 //4 #define ALRM6_MIN_MINL3_MASK 8 //3 #define ALRM6_MIN_MINL2_MASK 4 //2 #define ALRM6_MIN_MINL1_MASK 2 //1 #define ALRM6_MIN_MINL0_MASK 1 //0 /** ALRM 6 **/ ALRMSTR _TEMP_ALRM; #define TEMP_ALRM_ALRM _TEMP_ALRM.dByte #define TEMP_ALRM_MIN _TEMP_ALRM.MergedBitsA.ALRMM #define TEMP_ALRM_HR _TEMP_ALRM.MergedBitsA.ALRMHR #define TEMP_ALRM_DAY _TEMP_ALRM.MergedBitsA.ALRMDAY #define TEMP_ALRM_MIN_MINH _TEMP_ALRM.MergedBits.ALRMMH #define TEMP_ALRM_MIN_MINL _TEMP_ALRM.MergedBits.ALRMML #define TEMP_ALRM_HR_HRH _TEMP_ALRM.MergedBits.ALRMHRH #define TEMP_ALRM_HR_HRL _TEMP_ALRM.MergedBits.ALRMHRL #define TEMP_ALRM_DAY_DAY _TEMP_ALRM.MergedBits.ALRMDAYL #define TEMP_ALRM_MIN_MINH3 _TEMP_ALRM.Bits.ALRMMH3 #define TEMP_ALRM_MIN_MINH2 _TEMP_ALRM.Bits.ALRMMH2 #define TEMP_ALRM_MIN_MINH1 _TEMP_ALRM.Bits.ALRMMH1 #define TEMP_ALRM_MIN_MINH0 _TEMP_ALRM.Bits.ALRMMH0 #define TEMP_ALRM_MIN_MINL3 _TEMP_ALRM.Bits.ALRMML3 #define TEMP_ALRM_MIN_MINL2 _TEMP_ALRM.Bits.ALRMML2 #define TEMP_ALRM_MIN_MINL1 _TEMP_ALRM.Bits.ALRMML1 #define TEMP_ALRM_MIN_MINL0 _TEMP_ALRM.Bits.ALRMML0 #define TEMP_ALRM_AMPM _TEMP_ALRM.Bits.AMPM #define TEMP_ALRM_HR_HRH0 _TEMP_ALRM.Bits.ALRMHRH0 #define TEMP_ALRM_HR_HRL3 _TEMP_ALRM.Bits.ALRMHRL3 #define TEMP_ALRM_HR_HRL2 _TEMP_ALRM.Bits.ALRMHRL2 #define TEMP_ALRM_HR_HRL1 _TEMP_ALRM.Bits.ALRMHRL1 #define TEMP_ALRM_HR_HRL0 _TEMP_ALRM.Bits.ALRMHRL0 #define TEMP_ALRM_ONOFF _TEMP_ALRM.Bits.ONOFF #define TEMP_ALRM_DAY_DAY3 _TEMP_ALRM.Bits.ALRMDAYL3 #define TEMP_ALRM_DAY_DAY2 _TEMP_ALRM.Bits.ALRMDAYL2 #define TEMP_ALRM_DAY_DAY1 _TEMP_ALRM.Bits.ALRMDAYL1 #define TEMP_ALRM_DAY_DAY0 _TEMP_ALRM.Bits.ALRMDAYL0 #define TEMP_ALRM_ONOFF_MASK 524288 //19 #define TEMP_ALRM_DAY_DAY2_MASK 262144 //18 #define TEMP_ALRM_DAY_DAY1_MASK 131072 //17 #define TEMP_ALRM_DAY_DAY0_MASK 65536 //16 #define TEMP_ALRM_AMPM_MASK 8192 //13 #define TEMP_ALRM_HR_HRH0_MASK 4096 //12 #define TEMP_ALRM_HR_HRL3_MASK 2048 //11 #define TEMP_ALRM_HR_HRL2_MASK 1024 //10 #define TEMP_ALRM_HR_HRL1_MASK 512 //9 #define TEMP_ALRM_HR_HRL0_MASK 256 //8 #define TEMP_ALRM_MIN_MINH3_MASK 128 //7 #define TEMP_ALRM_MIN_MINH2_MASK 64 //6 #define TEMP_ALRM_MIN_MINH1_MASK 32 //5 #define TEMP_ALRM_MIN_MINH0_MASK 16 //4 #define TEMP_ALRM_MIN_MINL3_MASK 8 //3 #define TEMP_ALRM_MIN_MINL2_MASK 4 //2 #define TEMP_ALRM_MIN_MINL1_MASK 2 //1 #define TEMP_ALRM_MIN_MINL0_MASK 1 //0 /*** SNOOZE Range: 00-59 ***/ typedef union { byte Byte; struct { byte SL0 :1; /* SNOOZE Bit 0 */ byte SL1 :1; /* SNOOZE Bit 1 */ byte SL2 :1; /* SNOOZE Bit 2 */ byte SL3 :1; /* SNOOZE Bit 3 */ byte SH0 :1; /* SNOOZE 10s Bit 0 */ byte SH1 :1; /* SNOOZE 10s Bit 1 */ byte SH2 :1; /* SNOOZE 10s Bit 2 */ byte SH3 :1; /* SNOOZE 10s Bit 3 */ } Bits; struct { byte SL :4; byte SH :4; } MergedBits; } SNOOZESTR; SNOOZESTR _TEMP_SNOOZE; #define TEMP_SNOOZE _TEMP_SNOOZE.Byte #define TEMP_SNOOZEH _TEMP_SNOOZE.MergedBits.SH #define TEMP_SNOOZEL _TEMP_SNOOZE.MergedBits.SL #define TEMP_SNOOZE_H3 _TEMP_SNOOZE.Bits.SH3 #define TEMP_SNOOZE_H2 _TEMP_SNOOZE.Bits.SH2 #define TEMP_SNOOZE_H1 _TEMP_SNOOZE.Bits.SH1 #define TEMP_SNOOZE_H0 _TEMP_SNOOZE.Bits.SH0 #define TEMP_SNOOZE_L3 _TEMP_SNOOZE.Bits.SL3 #define TEMP_SNOOZE_L2 _TEMP_SNOOZE.Bits.SL2 #define TEMP_SNOOZE_L1 _TEMP_SNOOZE.Bits.SL1 #define TEMP_SNOOZE_L0 _TEMP_SNOOZE.Bits.SL0 #define TEMP_SNOOZE_H3_MASK 128 #define TEMP_SNOOZE_H2_MASK 64 #define TEMP_SNOOZE_H1_MASK 32 #define TEMP_SNOOZE_H0_MASK 16 #define TEMP_SNOOZE_L3_MASK 8 #define TEMP_SNOOZE_L2_MASK 4 #define TEMP_SNOOZE_L1_MASK 2 #define TEMP_SNOOZE_L0_MASK 1 SNOOZESTR _CURR_SNOOZE; #define CURR_SNOOZE _CURR_SNOOZE.Byte #define CURR_SNOOZEH _CURR_SNOOZE.MergedBits.SH #define CURR_SNOOZEL _CURR_SNOOZE.MergedBits.SL #define CURR_SNOOZE_H3 _CURR_SNOOZE.Bits.SH3 #define CURR_SNOOZE_H2 _CURR_SNOOZE.Bits.SH2 #define CURR_SNOOZE_H1 _CURR_SNOOZE.Bits.SH1 #define CURR_SNOOZE_H0 _CURR_SNOOZE.Bits.SH0 #define CURR_SNOOZE_L3 _CURR_SNOOZE.Bits.SL3 #define CURR_SNOOZE_L2 _CURR_SNOOZE.Bits.SL2 #define CURR_SNOOZE_L1 _CURR_SNOOZE.Bits.SL1 #define CURR_SNOOZE_L0 _CURR_SNOOZE.Bits.SL0 #define CURR_SNOOZE_H3_MASK 128 #define CURR_SNOOZE_H2_MASK 64 #define CURR_SNOOZE_H1_MASK 32 #define CURR_SNOOZE_H0_MASK 16 #define CURR_SNOOZE_L3_MASK 8 #define CURR_SNOOZE_L2_MASK 4 #define CURR_SNOOZE_L1_MASK 2 #define CURR_SNOOZE_L0_MASK 1 #endif