I checked the latest headers from TI, and they have indeed changed. The original I2CDR definition has been removed completely. That sounds like it might have compatibility implications. However, I changed our header file to reflect TI's latest. There are now definitions for I2CDRB and I2CDRW. There is no definition for I2CDR.

Steve

Steffen Netz wrote:

Hi,

in the TI-UG is mentioned a difference in I2CDRW/I2CDRB as Word/Byte-Registers.

in the IAR-File msp430x16x.h, there are the following lines:

------cite--------------------------------------
//#define I2CDRB              U0RXBUF_    /* I2C Data for Byte access */
#define I2CDRB_             U0RXBUF_    /* I2C Data for Byte access */
//#define I2CDRW              U0RXBUF_    /* I2C Data for Word access */
#define I2CDRW_             U0RXBUF_    /* I2C Data for Word access */

#ifdef __IAR_SYSTEMS_ICC__
__no_init union
{
 union
 {
   /* USART 0 Receive Buffer */
   volatile READ_ONLY unsigned char  U0RXBUF;
   volatile unsigned char         I2CDRB;
   volatile unsigned short        I2CDRW;
 };
 struct
 {
   /* USART 0 Transmit Buffer  */
   unsigned char                  dummy;
   volatile unsigned char         U0TXBUF;
 };
} @ 0x0076;
#else
DEFC(   U0RXBUF           , U0RXBUF_)
DEFC(   I2CDRB            , U0RXBUF_)
DEFW(   I2CDRW            , U0RXBUF_)
#endif


Reply via email to