Matt23

io430x14x.h

Oct 4th, 2017
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 85.90 KB | None | 0 0
  1.  
  2. /********************************************************************
  3.  *
  4.  * Standard register and bit definitions for the Texas Instruments
  5.  * MSP430 microcontroller.
  6.  *
  7.  * This file supports assembler and C/EC++ development for
  8.  * MSP430x14x devices.
  9.  *
  10.  * Copyright 1996-2004 IAR Systems. All rights reserved.
  11.  *
  12.  * $Revision: 1.21 $
  13.  *
  14.  ********************************************************************/
  15.  
  16. #ifndef __IO430X14X
  17. #define __IO430X14X
  18.  
  19. #if (((__TID__ >> 8) & 0x7F) != 0x2b)     /* 0x2b = 43 dec */
  20. #error io430x14x.h file for use with ICC430/A430 only
  21. #endif
  22.  
  23.  
  24. #ifdef __IAR_SYSTEMS_ICC__
  25. #pragma language=extended
  26.  
  27. #ifdef __cplusplus
  28. #define __READ    /* not supported */
  29. #else
  30. #define __READ    const
  31. #endif
  32.  
  33.  
  34. /*-------------------------------------------------------------------------
  35.  *   Standard Bits
  36.  *-------------------------------------------------------------------------*/
  37.  
  38. #define BIT0                (0x0001)
  39. #define BIT1                (0x0002)
  40. #define BIT2                (0x0004)
  41. #define BIT3                (0x0008)
  42. #define BIT4                (0x0010)
  43. #define BIT5                (0x0020)
  44. #define BIT6                (0x0040)
  45. #define BIT7                (0x0080)
  46. #define BIT8                (0x0100)
  47. #define BIT9                (0x0200)
  48. #define BITA                (0x0400)
  49. #define BITB                (0x0800)
  50. #define BITC                (0x1000)
  51. #define BITD                (0x2000)
  52. #define BITE                (0x4000)
  53. #define BITF                (0x8000)
  54.  
  55. /*-------------------------------------------------------------------------
  56.  *   Status register bits
  57.  *-------------------------------------------------------------------------*/
  58.  
  59. #define C                   (0x0001)
  60. #define Z                   (0x0002)
  61. #define N                   (0x0004)
  62. #define V                   (0x0100)
  63. #define GIE                 (0x0008)
  64. #define CPUOFF              (0x0010)
  65. #define OSCOFF              (0x0020)
  66. #define SCG0                (0x0040)
  67. #define SCG1                (0x0080)
  68.  
  69. /* Low Power Modes coded with Bits 4-7 in SR */
  70.  
  71. #define LPM0_bits           (CPUOFF)
  72. #define LPM1_bits           (SCG0+CPUOFF)
  73. #define LPM2_bits           (SCG1+CPUOFF)
  74. #define LPM3_bits           (SCG1+SCG0+CPUOFF)
  75. #define LPM4_bits           (SCG1+SCG0+OSCOFF+CPUOFF)
  76.  
  77.  
  78. #define LPM0      _BIS_SR(LPM0_bits)     /* Enter Low Power Mode 0 */
  79. #define LPM0_EXIT _BIC_SR_IRQ(LPM0_bits) /* Exit Low Power Mode 0 */
  80. #define LPM1      _BIS_SR(LPM1_bits)     /* Enter Low Power Mode 1 */
  81. #define LPM1_EXIT _BIC_SR_IRQ(LPM1_bits) /* Exit Low Power Mode 1 */
  82. #define LPM2      _BIS_SR(LPM2_bits)     /* Enter Low Power Mode 2 */
  83. #define LPM2_EXIT _BIC_SR_IRQ(LPM2_bits) /* Exit Low Power Mode 2 */
  84. #define LPM3      _BIS_SR(LPM3_bits)     /* Enter Low Power Mode 3 */
  85. #define LPM3_EXIT _BIC_SR_IRQ(LPM3_bits) /* Exit Low Power Mode 3 */
  86. #define LPM4      _BIS_SR(LPM4_bits)     /* Enter Low Power Mode 4 */
  87. #define LPM4_EXIT _BIC_SR_IRQ(LPM4_bits) /* Exit Low Power Mode 4 */
  88.  
  89.  
  90.  
  91. /*-------------------------------------------------------------------------
  92.  *   Special Function
  93.  *-------------------------------------------------------------------------*/
  94.  
  95.  
  96. __no_init volatile union
  97. {
  98.   unsigned char IE1;  /* Interrupt Enable 1 */
  99.  
  100.   struct
  101.   {
  102.     unsigned char WDTIE          : 1;
  103.     unsigned char OFIE           : 1;
  104.     unsigned char                : 2;
  105.     unsigned char NMIIE          : 1;
  106.     unsigned char ACCVIE         : 1;
  107.     unsigned char URXIE0         : 1;
  108.     unsigned char UTXIE0         : 1;
  109.   } IE1_bit;  
  110. } @ 0x0000;
  111.  
  112. #define U0IE IE1  /* UART0 Interrupt Enable Register */
  113.  
  114. enum {
  115.   WDTIE               = 0x0001,
  116.   OFIE                = 0x0002,
  117.   NMIIE               = 0x0010,
  118.   ACCVIE              = 0x0020,
  119.   URXIE0              = 0x0040,
  120.   UTXIE0              = 0x0080,
  121. };
  122.  
  123.  
  124. __no_init volatile union
  125. {
  126.   unsigned char IFG1;  /* Interrupt Flag 1 */
  127.  
  128.   struct
  129.   {
  130.     unsigned char WDTIFG         : 1;
  131.     unsigned char OFIFG          : 1;
  132.     unsigned char                : 2;
  133.     unsigned char NMIIFG         : 1;
  134.     unsigned char                : 1;
  135.     unsigned char URXIFG0        : 1;
  136.     unsigned char UTXIFG0        : 1;
  137.   } IFG1_bit;  
  138. } @ 0x0002;
  139.  
  140. #define U0IFG IFG1  /* UART0 Interrupt Flag Register */
  141.  
  142. enum {
  143.   WDTIFG              = 0x0001,
  144.   OFIFG               = 0x0002,
  145.   NMIIFG              = 0x0010,
  146.   URXIFG0             = 0x0040,
  147.   UTXIFG0             = 0x0080,
  148. };
  149.  
  150.  
  151. __no_init volatile union
  152. {
  153.   unsigned char ME1;  /* Module Enable 1 */
  154.  
  155.   union
  156.   {
  157.     struct
  158.     {
  159.       unsigned char                : 6;
  160.       unsigned char URXE0          : 1;
  161.       unsigned char UTXE0          : 1;
  162.     };
  163.     struct
  164.     {
  165.       unsigned char                : 6;
  166.       unsigned char USPIE0         : 1;
  167.     };
  168.   } ME1_bit;
  169. } @ 0x0004;
  170.  
  171. #define U0ME ME1  /* UART0 Module Enable Register */
  172.  
  173. enum {
  174.   URXE0               = 0x0040,
  175.   UTXE0               = 0x0080,
  176.   USPIE0              = 0x0040,
  177. };
  178.  
  179.  
  180. __no_init volatile union
  181. {
  182.   unsigned char IE2;  /* Interrupt Enable 2 */
  183.  
  184.   struct
  185.   {
  186.     unsigned char                : 4;
  187.     unsigned char URXIE1         : 1;
  188.     unsigned char UTXIE1         : 1;
  189.     unsigned char                : 2;
  190.   } IE2_bit;  
  191. } @ 0x0001;
  192.  
  193. #define U1IE IE2  /* UART1 Interrupt Enable Register */
  194.  
  195. enum {
  196.   URXIE1              = 0x0010,
  197.   UTXIE1              = 0x0020,
  198. };
  199.  
  200.  
  201. __no_init volatile union
  202. {
  203.   unsigned char IFG2;  /* Interrupt Flag 2 */
  204.  
  205.   struct
  206.   {
  207.     unsigned char                : 4;
  208.     unsigned char URXIFG1        : 1;
  209.     unsigned char UTXIFG1        : 1;
  210.     unsigned char                : 2;
  211.   } IFG2_bit;  
  212. } @ 0x0003;
  213.  
  214. #define U1IFG IFG2  /* UART1 Interrupt Flag Register */
  215.  
  216. enum {
  217.   URXIFG1             = 0x0010,
  218.   UTXIFG1             = 0x0020,
  219. };
  220.  
  221.  
  222. __no_init volatile union
  223. {
  224.   unsigned char ME2;  /* Module Enable 2 */
  225.  
  226.   union
  227.   {
  228.     struct
  229.     {
  230.       unsigned char                : 4;
  231.       unsigned char URXE1          : 1;
  232.       unsigned char UTXE1          : 1;
  233.     };
  234.     struct
  235.     {
  236.       unsigned char                : 4;
  237.       unsigned char USPIE1         : 1;
  238.     };
  239.   } ME2_bit;
  240. } @ 0x0005;
  241.  
  242. #define U1ME ME2  /* UART1 Module Enable Register */
  243.  
  244. enum {
  245.   URXE1               = 0x0010,
  246.   UTXE1               = 0x0020,
  247.   USPIE1              = 0x0010,
  248. };
  249.  
  250.  
  251.  
  252. /*-------------------------------------------------------------------------
  253.  *   Watchdog Timer
  254.  *-------------------------------------------------------------------------*/
  255.  
  256.  
  257. __no_init volatile union
  258. {
  259.   unsigned short WDTCTL;  /* Watchdog Timer Control */
  260.  
  261.   struct
  262.   {
  263.     unsigned short WDTIS0        : 1;
  264.     unsigned short WDTIS1        : 1;
  265.     unsigned short WDTSSEL       : 1;
  266.     unsigned short WDTCNTCL      : 1;
  267.     unsigned short WDTTMSEL      : 1;
  268.     unsigned short WDTNMI        : 1;
  269.     unsigned short WDTNMIES      : 1;
  270.     unsigned short WDTHOLD       : 1;
  271.     unsigned short               : 8;
  272.   } WDTCTL_bit;  
  273. } @ 0x0120;
  274.  
  275.  
  276. enum {
  277.   WDTIS0              = 0x0001,
  278.   WDTIS1              = 0x0002,
  279.   WDTSSEL             = 0x0004,
  280.   WDTCNTCL            = 0x0008,
  281.   WDTTMSEL            = 0x0010,
  282.   WDTNMI              = 0x0020,
  283.   WDTNMIES            = 0x0040,
  284.   WDTHOLD             = 0x0080,
  285. };
  286.  
  287.  
  288. #define WDTPW               (0x5A00)
  289.  
  290. /* WDT-interval times [1ms] coded with Bits 0-2 */
  291. /* WDT is clocked by fMCLK (assumed 1MHz) */
  292. #define WDT_MDLY_32         (WDTPW+WDTTMSEL+WDTCNTCL)                         /* 32ms interval (default) */
  293. #define WDT_MDLY_8          (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0)                  /* 8ms      */
  294. #define WDT_MDLY_0_5        (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1)                  /* 0.5ms    */
  295. #define WDT_MDLY_0_064      (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0)           /* 0.064ms  */
  296. /* WDT is clocked by fACLK (assumed 32KHz) */
  297. #define WDT_ADLY_1000       (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL)                 /* 1000ms   */
  298. #define WDT_ADLY_250        (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0)          /* 250ms    */
  299. #define WDT_ADLY_16         (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1)          /* 16ms     */
  300. #define WDT_ADLY_1_9        (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)   /* 1.9ms    */
  301. /* Watchdog mode -> reset after expired time */
  302. /* WDT is clocked by fMCLK (assumed 1MHz) */
  303. #define WDT_MRST_32         (WDTPW+WDTCNTCL)                                  /* 32ms interval (default) */
  304. #define WDT_MRST_8          (WDTPW+WDTCNTCL+WDTIS0)                           /* 8ms      */
  305. #define WDT_MRST_0_5        (WDTPW+WDTCNTCL+WDTIS1)                           /* 0.5ms    */
  306. #define WDT_MRST_0_064      (WDTPW+WDTCNTCL+WDTIS1+WDTIS0)                    /* 0.064ms  */
  307. /* WDT is clocked by fACLK (assumed 32KHz) */
  308. #define WDT_ARST_1000       (WDTPW+WDTCNTCL+WDTSSEL)                          /* 1000ms   */
  309. #define WDT_ARST_250        (WDTPW+WDTCNTCL+WDTSSEL+WDTIS0)                   /* 250ms    */
  310. #define WDT_ARST_16         (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1)                   /* 16ms     */
  311. #define WDT_ARST_1_9        (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0)            /* 1.9ms    */
  312.  
  313. /* INTERRUPT CONTROL */
  314. /* These two bits are defined in the Special Function Registers */
  315. /* #define WDTIE               0x01 */
  316. /* #define WDTIFG              0x01 */
  317.  
  318.  
  319. /*-------------------------------------------------------------------------
  320.  *   Hardware Multiplier
  321.  *-------------------------------------------------------------------------*/
  322.  
  323.  
  324.  /* Multiply Unsigned/Operand 1 */
  325. __no_init volatile unsigned short MPY @ 0x0130;  
  326.  
  327.  
  328.  /* Multiply Signed/Operand 1 */
  329. __no_init volatile unsigned short MPYS @ 0x0132;  
  330.  
  331.  
  332.  /* Multiply Unsigned and Accumulate/Operand 1 */
  333. __no_init volatile unsigned short MAC @ 0x0134;  
  334.  
  335.  
  336.  /* Multiply Signed and Accumulate/Operand 1 */
  337. __no_init volatile unsigned short MACS @ 0x0136;  
  338.  
  339.  
  340.  /* Operand 2 */
  341. __no_init volatile unsigned short OP2 @ 0x0138;  
  342.  
  343.  
  344.  /* Result Low Word */
  345. __no_init volatile unsigned short RESLO @ 0x013A;  
  346.  
  347.  
  348.  /* Result High Word */
  349. __no_init volatile unsigned short RESHI @ 0x013C;  
  350.  
  351.  
  352.  /* Sum Extend */
  353. __no_init volatile unsigned __READ short SUMEXT @ 0x013E;  
  354.  
  355.  
  356.  
  357. /*-------------------------------------------------------------------------
  358.  *   Digital I/O Port1/2
  359.  *-------------------------------------------------------------------------*/
  360.  
  361.  
  362. __no_init volatile union
  363. {
  364.   unsigned __READ char P1IN;  /* Port 1 Input */
  365.  
  366.   struct
  367.   {
  368.     unsigned __READ char P1IN_0  : 1;
  369.     unsigned __READ char P1IN_1  : 1;
  370.     unsigned __READ char P1IN_2  : 1;
  371.     unsigned __READ char P1IN_3  : 1;
  372.     unsigned __READ char P1IN_4  : 1;
  373.     unsigned __READ char P1IN_5  : 1;
  374.     unsigned __READ char P1IN_6  : 1;
  375.     unsigned __READ char P1IN_7  : 1;
  376.   } P1IN_bit;  
  377. } @ 0x0020;
  378.  
  379.  
  380. enum {
  381.   P1IN_0              = 0x0001,
  382.   P1IN_1              = 0x0002,
  383.   P1IN_2              = 0x0004,
  384.   P1IN_3              = 0x0008,
  385.   P1IN_4              = 0x0010,
  386.   P1IN_5              = 0x0020,
  387.   P1IN_6              = 0x0040,
  388.   P1IN_7              = 0x0080,
  389. };
  390.  
  391.  
  392. __no_init volatile union
  393. {
  394.   unsigned char P1OUT;  /* Port 1 Output */
  395.  
  396.   struct
  397.   {
  398.     unsigned char P1OUT_0        : 1;
  399.     unsigned char P1OUT_1        : 1;
  400.     unsigned char P1OUT_2        : 1;
  401.     unsigned char P1OUT_3        : 1;
  402.     unsigned char P1OUT_4        : 1;
  403.     unsigned char P1OUT_5        : 1;
  404.     unsigned char P1OUT_6        : 1;
  405.     unsigned char P1OUT_7        : 1;
  406.   } P1OUT_bit;  
  407. } @ 0x0021;
  408.  
  409.  
  410. enum {
  411.   P1OUT_0             = 0x0001,
  412.   P1OUT_1             = 0x0002,
  413.   P1OUT_2             = 0x0004,
  414.   P1OUT_3             = 0x0008,
  415.   P1OUT_4             = 0x0010,
  416.   P1OUT_5             = 0x0020,
  417.   P1OUT_6             = 0x0040,
  418.   P1OUT_7             = 0x0080,
  419. };
  420.  
  421.  
  422. __no_init volatile union
  423. {
  424.   unsigned char P1DIR;  /* Port 1 Direction */
  425.  
  426.   struct
  427.   {
  428.     unsigned char P1DIR_0        : 1;
  429.     unsigned char P1DIR_1        : 1;
  430.     unsigned char P1DIR_2        : 1;
  431.     unsigned char P1DIR_3        : 1;
  432.     unsigned char P1DIR_4        : 1;
  433.     unsigned char P1DIR_5        : 1;
  434.     unsigned char P1DIR_6        : 1;
  435.     unsigned char P1DIR_7        : 1;
  436.   } P1DIR_bit;  
  437. } @ 0x0022;
  438.  
  439.  
  440. enum {
  441.   P1DIR_0             = 0x0001,
  442.   P1DIR_1             = 0x0002,
  443.   P1DIR_2             = 0x0004,
  444.   P1DIR_3             = 0x0008,
  445.   P1DIR_4             = 0x0010,
  446.   P1DIR_5             = 0x0020,
  447.   P1DIR_6             = 0x0040,
  448.   P1DIR_7             = 0x0080,
  449. };
  450.  
  451.  
  452. __no_init volatile union
  453. {
  454.   unsigned char P1IFG;  /* Port 1 Interrupt Flag  */
  455.  
  456.   struct
  457.   {
  458.     unsigned char P1IFG_0        : 1;
  459.     unsigned char P1IFG_1        : 1;
  460.     unsigned char P1IFG_2        : 1;
  461.     unsigned char P1IFG_3        : 1;
  462.     unsigned char P1IFG_4        : 1;
  463.     unsigned char P1IFG_5        : 1;
  464.     unsigned char P1IFG_6        : 1;
  465.     unsigned char P1IFG_7        : 1;
  466.   } P1IFG_bit;  
  467. } @ 0x0023;
  468.  
  469.  
  470. enum {
  471.   P1IFG_0             = 0x0001,
  472.   P1IFG_1             = 0x0002,
  473.   P1IFG_2             = 0x0004,
  474.   P1IFG_3             = 0x0008,
  475.   P1IFG_4             = 0x0010,
  476.   P1IFG_5             = 0x0020,
  477.   P1IFG_6             = 0x0040,
  478.   P1IFG_7             = 0x0080,
  479. };
  480.  
  481.  
  482. __no_init volatile union
  483. {
  484.   unsigned char P1IES;  /* Port 1 Interrupt Edge Select */
  485.  
  486.   struct
  487.   {
  488.     unsigned char P1IES_0        : 1;
  489.     unsigned char P1IES_1        : 1;
  490.     unsigned char P1IES_2        : 1;
  491.     unsigned char P1IES_3        : 1;
  492.     unsigned char P1IES_4        : 1;
  493.     unsigned char P1IES_5        : 1;
  494.     unsigned char P1IES_6        : 1;
  495.     unsigned char P1IES_7        : 1;
  496.   } P1IES_bit;  
  497. } @ 0x0024;
  498.  
  499.  
  500. enum {
  501.   P1IES_0             = 0x0001,
  502.   P1IES_1             = 0x0002,
  503.   P1IES_2             = 0x0004,
  504.   P1IES_3             = 0x0008,
  505.   P1IES_4             = 0x0010,
  506.   P1IES_5             = 0x0020,
  507.   P1IES_6             = 0x0040,
  508.   P1IES_7             = 0x0080,
  509. };
  510.  
  511.  
  512. __no_init volatile union
  513. {
  514.   unsigned char P1IE;  /* Port 1 Interrupt Enable */
  515.  
  516.   struct
  517.   {
  518.     unsigned char P1IE_0         : 1;
  519.     unsigned char P1IE_1         : 1;
  520.     unsigned char P1IE_2         : 1;
  521.     unsigned char P1IE_3         : 1;
  522.     unsigned char P1IE_4         : 1;
  523.     unsigned char P1IE_5         : 1;
  524.     unsigned char P1IE_6         : 1;
  525.     unsigned char P1IE_7         : 1;
  526.   } P1IE_bit;  
  527. } @ 0x0025;
  528.  
  529.  
  530. enum {
  531.   P1IE_0              = 0x0001,
  532.   P1IE_1              = 0x0002,
  533.   P1IE_2              = 0x0004,
  534.   P1IE_3              = 0x0008,
  535.   P1IE_4              = 0x0010,
  536.   P1IE_5              = 0x0020,
  537.   P1IE_6              = 0x0040,
  538.   P1IE_7              = 0x0080,
  539. };
  540.  
  541.  
  542. __no_init volatile union
  543. {
  544.   unsigned char P1SEL;  /* Port 1 Selection */
  545.  
  546.   struct
  547.   {
  548.     unsigned char P1SEL_0        : 1;
  549.     unsigned char P1SEL_1        : 1;
  550.     unsigned char P1SEL_2        : 1;
  551.     unsigned char P1SEL_3        : 1;
  552.     unsigned char P1SEL_4        : 1;
  553.     unsigned char P1SEL_5        : 1;
  554.     unsigned char P1SEL_6        : 1;
  555.     unsigned char P1SEL_7        : 1;
  556.   } P1SEL_bit;  
  557. } @ 0x0026;
  558.  
  559.  
  560. enum {
  561.   P1SEL_0             = 0x0001,
  562.   P1SEL_1             = 0x0002,
  563.   P1SEL_2             = 0x0004,
  564.   P1SEL_3             = 0x0008,
  565.   P1SEL_4             = 0x0010,
  566.   P1SEL_5             = 0x0020,
  567.   P1SEL_6             = 0x0040,
  568.   P1SEL_7             = 0x0080,
  569. };
  570.  
  571.  
  572. __no_init volatile union
  573. {
  574.   unsigned __READ char P2IN;  /* Port 2 Input */
  575.  
  576.   struct
  577.   {
  578.     unsigned __READ char P2IN_0  : 1;
  579.     unsigned __READ char P2IN_1  : 1;
  580.     unsigned __READ char P2IN_2  : 1;
  581.     unsigned __READ char P2IN_3  : 1;
  582.     unsigned __READ char P2IN_4  : 1;
  583.     unsigned __READ char P2IN_5  : 1;
  584.     unsigned __READ char P2IN_6  : 1;
  585.     unsigned __READ char P2IN_7  : 1;
  586.   } P2IN_bit;  
  587. } @ 0x0028;
  588.  
  589.  
  590. enum {
  591.   P2IN_0              = 0x0001,
  592.   P2IN_1              = 0x0002,
  593.   P2IN_2              = 0x0004,
  594.   P2IN_3              = 0x0008,
  595.   P2IN_4              = 0x0010,
  596.   P2IN_5              = 0x0020,
  597.   P2IN_6              = 0x0040,
  598.   P2IN_7              = 0x0080,
  599. };
  600.  
  601.  
  602. __no_init volatile union
  603. {
  604.   unsigned char P2OUT;  /* Port 2 Output */
  605.  
  606.   struct
  607.   {
  608.     unsigned char P2OUT_0        : 1;
  609.     unsigned char P2OUT_1        : 1;
  610.     unsigned char P2OUT_2        : 1;
  611.     unsigned char P2OUT_3        : 1;
  612.     unsigned char P2OUT_4        : 1;
  613.     unsigned char P2OUT_5        : 1;
  614.     unsigned char P2OUT_6        : 1;
  615.     unsigned char P2OUT_7        : 1;
  616.   } P2OUT_bit;  
  617. } @ 0x0029;
  618.  
  619.  
  620. enum {
  621.   P2OUT_0             = 0x0001,
  622.   P2OUT_1             = 0x0002,
  623.   P2OUT_2             = 0x0004,
  624.   P2OUT_3             = 0x0008,
  625.   P2OUT_4             = 0x0010,
  626.   P2OUT_5             = 0x0020,
  627.   P2OUT_6             = 0x0040,
  628.   P2OUT_7             = 0x0080,
  629. };
  630.  
  631.  
  632. __no_init volatile union
  633. {
  634.   unsigned char P2DIR;  /* Port 2 Direction */
  635.  
  636.   struct
  637.   {
  638.     unsigned char P2DIR_0        : 1;
  639.     unsigned char P2DIR_1        : 1;
  640.     unsigned char P2DIR_2        : 1;
  641.     unsigned char P2DIR_3        : 1;
  642.     unsigned char P2DIR_4        : 1;
  643.     unsigned char P2DIR_5        : 1;
  644.     unsigned char P2DIR_6        : 1;
  645.     unsigned char P2DIR_7        : 1;
  646.   } P2DIR_bit;  
  647. } @ 0x002A;
  648.  
  649.  
  650. enum {
  651.   P2DIR_0             = 0x0001,
  652.   P2DIR_1             = 0x0002,
  653.   P2DIR_2             = 0x0004,
  654.   P2DIR_3             = 0x0008,
  655.   P2DIR_4             = 0x0010,
  656.   P2DIR_5             = 0x0020,
  657.   P2DIR_6             = 0x0040,
  658.   P2DIR_7             = 0x0080,
  659. };
  660.  
  661.  
  662. __no_init volatile union
  663. {
  664.   unsigned char P2IFG;  /* Port 2 Interrupt Flag */
  665.  
  666.   struct
  667.   {
  668.     unsigned char P2IFG_0        : 1;
  669.     unsigned char P2IFG_1        : 1;
  670.     unsigned char P2IFG_2        : 1;
  671.     unsigned char P2IFG_3        : 1;
  672.     unsigned char P2IFG_4        : 1;
  673.     unsigned char P2IFG_5        : 1;
  674.     unsigned char P2IFG_6        : 1;
  675.     unsigned char P2IFG_7        : 1;
  676.   } P2IFG_bit;  
  677. } @ 0x002B;
  678.  
  679.  
  680. enum {
  681.   P2IFG_0             = 0x0001,
  682.   P2IFG_1             = 0x0002,
  683.   P2IFG_2             = 0x0004,
  684.   P2IFG_3             = 0x0008,
  685.   P2IFG_4             = 0x0010,
  686.   P2IFG_5             = 0x0020,
  687.   P2IFG_6             = 0x0040,
  688.   P2IFG_7             = 0x0080,
  689. };
  690.  
  691.  
  692. __no_init volatile union
  693. {
  694.   unsigned char P2IES;  /* Port 2 Interrupt Edge Select */
  695.  
  696.   struct
  697.   {
  698.     unsigned char P2IES_0        : 1;
  699.     unsigned char P2IES_1        : 1;
  700.     unsigned char P2IES_2        : 1;
  701.     unsigned char P2IES_3        : 1;
  702.     unsigned char P2IES_4        : 1;
  703.     unsigned char P2IES_5        : 1;
  704.     unsigned char P2IES_6        : 1;
  705.     unsigned char P2IES_7        : 1;
  706.   } P2IES_bit;  
  707. } @ 0x002C;
  708.  
  709.  
  710. enum {
  711.   P2IES_0             = 0x0001,
  712.   P2IES_1             = 0x0002,
  713.   P2IES_2             = 0x0004,
  714.   P2IES_3             = 0x0008,
  715.   P2IES_4             = 0x0010,
  716.   P2IES_5             = 0x0020,
  717.   P2IES_6             = 0x0040,
  718.   P2IES_7             = 0x0080,
  719. };
  720.  
  721.  
  722. __no_init volatile union
  723. {
  724.   unsigned char P2IE;  /* Port 2 Interrupt Enable */
  725.  
  726.   struct
  727.   {
  728.     unsigned char P2IE_0         : 1;
  729.     unsigned char P2IE_1         : 1;
  730.     unsigned char P2IE_2         : 1;
  731.     unsigned char P2IE_3         : 1;
  732.     unsigned char P2IE_4         : 1;
  733.     unsigned char P2IE_5         : 1;
  734.     unsigned char P2IE_6         : 1;
  735.     unsigned char P2IE_7         : 1;
  736.   } P2IE_bit;  
  737. } @ 0x002D;
  738.  
  739.  
  740. enum {
  741.   P2IE_0              = 0x0001,
  742.   P2IE_1              = 0x0002,
  743.   P2IE_2              = 0x0004,
  744.   P2IE_3              = 0x0008,
  745.   P2IE_4              = 0x0010,
  746.   P2IE_5              = 0x0020,
  747.   P2IE_6              = 0x0040,
  748.   P2IE_7              = 0x0080,
  749. };
  750.  
  751.  
  752. __no_init volatile union
  753. {
  754.   unsigned char P2SEL;  /* Port 2 Selection */
  755.  
  756.   struct
  757.   {
  758.     unsigned char P2SEL_0        : 1;
  759.     unsigned char P2SEL_1        : 1;
  760.     unsigned char P2SEL_2        : 1;
  761.     unsigned char P2SEL_3        : 1;
  762.     unsigned char P2SEL_4        : 1;
  763.     unsigned char P2SEL_5        : 1;
  764.     unsigned char P2SEL_6        : 1;
  765.     unsigned char P2SEL_7        : 1;
  766.   } P2SEL_bit;  
  767. } @ 0x002E;
  768.  
  769.  
  770. enum {
  771.   P2SEL_0             = 0x0001,
  772.   P2SEL_1             = 0x0002,
  773.   P2SEL_2             = 0x0004,
  774.   P2SEL_3             = 0x0008,
  775.   P2SEL_4             = 0x0010,
  776.   P2SEL_5             = 0x0020,
  777.   P2SEL_6             = 0x0040,
  778.   P2SEL_7             = 0x0080,
  779. };
  780.  
  781.  
  782.  
  783. /*-------------------------------------------------------------------------
  784.  *   Digital I/O Port3/4
  785.  *-------------------------------------------------------------------------*/
  786.  
  787.  
  788. __no_init volatile union
  789. {
  790.   unsigned __READ char P3IN;  /* Port 3 Input */
  791.  
  792.   struct
  793.   {
  794.     unsigned __READ char P3IN_0  : 1;
  795.     unsigned __READ char P3IN_1  : 1;
  796.     unsigned __READ char P3IN_2  : 1;
  797.     unsigned __READ char P3IN_3  : 1;
  798.     unsigned __READ char P3IN_4  : 1;
  799.     unsigned __READ char P3IN_5  : 1;
  800.     unsigned __READ char P3IN_6  : 1;
  801.     unsigned __READ char P3IN_7  : 1;
  802.   } P3IN_bit;  
  803. } @ 0x0018;
  804.  
  805.  
  806. enum {
  807.   P3IN_0              = 0x0001,
  808.   P3IN_1              = 0x0002,
  809.   P3IN_2              = 0x0004,
  810.   P3IN_3              = 0x0008,
  811.   P3IN_4              = 0x0010,
  812.   P3IN_5              = 0x0020,
  813.   P3IN_6              = 0x0040,
  814.   P3IN_7              = 0x0080,
  815. };
  816.  
  817.  
  818. __no_init volatile union
  819. {
  820.   unsigned char P3OUT;  /* Port 3 Output */
  821.  
  822.   struct
  823.   {
  824.     unsigned char P3OUT_0        : 1;
  825.     unsigned char P3OUT_1        : 1;
  826.     unsigned char P3OUT_2        : 1;
  827.     unsigned char P3OUT_3        : 1;
  828.     unsigned char P3OUT_4        : 1;
  829.     unsigned char P3OUT_5        : 1;
  830.     unsigned char P3OUT_6        : 1;
  831.     unsigned char P3OUT_7        : 1;
  832.   } P3OUT_bit;  
  833. } @ 0x0019;
  834.  
  835.  
  836. enum {
  837.   P3OUT_0             = 0x0001,
  838.   P3OUT_1             = 0x0002,
  839.   P3OUT_2             = 0x0004,
  840.   P3OUT_3             = 0x0008,
  841.   P3OUT_4             = 0x0010,
  842.   P3OUT_5             = 0x0020,
  843.   P3OUT_6             = 0x0040,
  844.   P3OUT_7             = 0x0080,
  845. };
  846.  
  847.  
  848. __no_init volatile union
  849. {
  850.   unsigned char P3DIR;  /* Port 3 Direction */
  851.  
  852.   struct
  853.   {
  854.     unsigned char P3DIR_0        : 1;
  855.     unsigned char P3DIR_1        : 1;
  856.     unsigned char P3DIR_2        : 1;
  857.     unsigned char P3DIR_3        : 1;
  858.     unsigned char P3DIR_4        : 1;
  859.     unsigned char P3DIR_5        : 1;
  860.     unsigned char P3DIR_6        : 1;
  861.     unsigned char P3DIR_7        : 1;
  862.   } P3DIR_bit;  
  863. } @ 0x001A;
  864.  
  865.  
  866. enum {
  867.   P3DIR_0             = 0x0001,
  868.   P3DIR_1             = 0x0002,
  869.   P3DIR_2             = 0x0004,
  870.   P3DIR_3             = 0x0008,
  871.   P3DIR_4             = 0x0010,
  872.   P3DIR_5             = 0x0020,
  873.   P3DIR_6             = 0x0040,
  874.   P3DIR_7             = 0x0080,
  875. };
  876.  
  877.  
  878. __no_init volatile union
  879. {
  880.   unsigned char P3SEL;  /* Port 3 Selection */
  881.  
  882.   struct
  883.   {
  884.     unsigned char P3SEL_0        : 1;
  885.     unsigned char P3SEL_1        : 1;
  886.     unsigned char P3SEL_2        : 1;
  887.     unsigned char P3SEL_3        : 1;
  888.     unsigned char P3SEL_4        : 1;
  889.     unsigned char P3SEL_5        : 1;
  890.     unsigned char P3SEL_6        : 1;
  891.     unsigned char P3SEL_7        : 1;
  892.   } P3SEL_bit;  
  893. } @ 0x001B;
  894.  
  895.  
  896. enum {
  897.   P3SEL_0             = 0x0001,
  898.   P3SEL_1             = 0x0002,
  899.   P3SEL_2             = 0x0004,
  900.   P3SEL_3             = 0x0008,
  901.   P3SEL_4             = 0x0010,
  902.   P3SEL_5             = 0x0020,
  903.   P3SEL_6             = 0x0040,
  904.   P3SEL_7             = 0x0080,
  905. };
  906.  
  907.  
  908. __no_init volatile union
  909. {
  910.   unsigned __READ char P4IN;  /* Port 4 Input */
  911.  
  912.   struct
  913.   {
  914.     unsigned __READ char P4IN_0  : 1;
  915.     unsigned __READ char P4IN_1  : 1;
  916.     unsigned __READ char P4IN_2  : 1;
  917.     unsigned __READ char P4IN_3  : 1;
  918.     unsigned __READ char P4IN_4  : 1;
  919.     unsigned __READ char P4IN_5  : 1;
  920.     unsigned __READ char P4IN_6  : 1;
  921.     unsigned __READ char P4IN_7  : 1;
  922.   } P4IN_bit;  
  923. } @ 0x001C;
  924.  
  925.  
  926. enum {
  927.   P4IN_0              = 0x0001,
  928.   P4IN_1              = 0x0002,
  929.   P4IN_2              = 0x0004,
  930.   P4IN_3              = 0x0008,
  931.   P4IN_4              = 0x0010,
  932.   P4IN_5              = 0x0020,
  933.   P4IN_6              = 0x0040,
  934.   P4IN_7              = 0x0080,
  935. };
  936.  
  937.  
  938. __no_init volatile union
  939. {
  940.   unsigned char P4OUT;  /* Port 4 Output */
  941.  
  942.   struct
  943.   {
  944.     unsigned char P4OUT_0        : 1;
  945.     unsigned char P4OUT_1        : 1;
  946.     unsigned char P4OUT_2        : 1;
  947.     unsigned char P4OUT_3        : 1;
  948.     unsigned char P4OUT_4        : 1;
  949.     unsigned char P4OUT_5        : 1;
  950.     unsigned char P4OUT_6        : 1;
  951.     unsigned char P4OUT_7        : 1;
  952.   } P4OUT_bit;  
  953. } @ 0x001D;
  954.  
  955.  
  956. enum {
  957.   P4OUT_0             = 0x0001,
  958.   P4OUT_1             = 0x0002,
  959.   P4OUT_2             = 0x0004,
  960.   P4OUT_3             = 0x0008,
  961.   P4OUT_4             = 0x0010,
  962.   P4OUT_5             = 0x0020,
  963.   P4OUT_6             = 0x0040,
  964.   P4OUT_7             = 0x0080,
  965. };
  966.  
  967.  
  968. __no_init volatile union
  969. {
  970.   unsigned char P4DIR;  /* Port 4 Direction */
  971.  
  972.   struct
  973.   {
  974.     unsigned char P4DIR_0        : 1;
  975.     unsigned char P4DIR_1        : 1;
  976.     unsigned char P4DIR_2        : 1;
  977.     unsigned char P4DIR_3        : 1;
  978.     unsigned char P4DIR_4        : 1;
  979.     unsigned char P4DIR_5        : 1;
  980.     unsigned char P4DIR_6        : 1;
  981.     unsigned char P4DIR_7        : 1;
  982.   } P4DIR_bit;  
  983. } @ 0x001E;
  984.  
  985.  
  986. enum {
  987.   P4DIR_0             = 0x0001,
  988.   P4DIR_1             = 0x0002,
  989.   P4DIR_2             = 0x0004,
  990.   P4DIR_3             = 0x0008,
  991.   P4DIR_4             = 0x0010,
  992.   P4DIR_5             = 0x0020,
  993.   P4DIR_6             = 0x0040,
  994.   P4DIR_7             = 0x0080,
  995. };
  996.  
  997.  
  998. __no_init volatile union
  999. {
  1000.   unsigned char P4SEL;  /* Port 4 Selection */
  1001.  
  1002.   struct
  1003.   {
  1004.     unsigned char P4SEL_0        : 1;
  1005.     unsigned char P4SEL_1        : 1;
  1006.     unsigned char P4SEL_2        : 1;
  1007.     unsigned char P4SEL_3        : 1;
  1008.     unsigned char P4SEL_4        : 1;
  1009.     unsigned char P4SEL_5        : 1;
  1010.     unsigned char P4SEL_6        : 1;
  1011.     unsigned char P4SEL_7        : 1;
  1012.   } P4SEL_bit;  
  1013. } @ 0x001F;
  1014.  
  1015.  
  1016. enum {
  1017.   P4SEL_0             = 0x0001,
  1018.   P4SEL_1             = 0x0002,
  1019.   P4SEL_2             = 0x0004,
  1020.   P4SEL_3             = 0x0008,
  1021.   P4SEL_4             = 0x0010,
  1022.   P4SEL_5             = 0x0020,
  1023.   P4SEL_6             = 0x0040,
  1024.   P4SEL_7             = 0x0080,
  1025. };
  1026.  
  1027.  
  1028.  
  1029. /*-------------------------------------------------------------------------
  1030.  *   Digital I/O Port5/6
  1031.  *-------------------------------------------------------------------------*/
  1032.  
  1033.  
  1034. __no_init volatile union
  1035. {
  1036.   unsigned __READ char P5IN;  /* Port 5 Input */
  1037.  
  1038.   struct
  1039.   {
  1040.     unsigned __READ char P5IN_0  : 1;
  1041.     unsigned __READ char P5IN_1  : 1;
  1042.     unsigned __READ char P5IN_2  : 1;
  1043.     unsigned __READ char P5IN_3  : 1;
  1044.     unsigned __READ char P5IN_4  : 1;
  1045.     unsigned __READ char P5IN_5  : 1;
  1046.     unsigned __READ char P5IN_6  : 1;
  1047.     unsigned __READ char P5IN_7  : 1;
  1048.   } P5IN_bit;  
  1049. } @ 0x0030;
  1050.  
  1051.  
  1052. enum {
  1053.   P5IN_0              = 0x0001,
  1054.   P5IN_1              = 0x0002,
  1055.   P5IN_2              = 0x0004,
  1056.   P5IN_3              = 0x0008,
  1057.   P5IN_4              = 0x0010,
  1058.   P5IN_5              = 0x0020,
  1059.   P5IN_6              = 0x0040,
  1060.   P5IN_7              = 0x0080,
  1061. };
  1062.  
  1063.  
  1064. __no_init volatile union
  1065. {
  1066.   unsigned char P5OUT;  /* Port 5 Output */
  1067.  
  1068.   struct
  1069.   {
  1070.     unsigned char P5OUT_0        : 1;
  1071.     unsigned char P5OUT_1        : 1;
  1072.     unsigned char P5OUT_2        : 1;
  1073.     unsigned char P5OUT_3        : 1;
  1074.     unsigned char P5OUT_4        : 1;
  1075.     unsigned char P5OUT_5        : 1;
  1076.     unsigned char P5OUT_6        : 1;
  1077.     unsigned char P5OUT_7        : 1;
  1078.   } P5OUT_bit;  
  1079. } @ 0x0031;
  1080.  
  1081.  
  1082. enum {
  1083.   P5OUT_0             = 0x0001,
  1084.   P5OUT_1             = 0x0002,
  1085.   P5OUT_2             = 0x0004,
  1086.   P5OUT_3             = 0x0008,
  1087.   P5OUT_4             = 0x0010,
  1088.   P5OUT_5             = 0x0020,
  1089.   P5OUT_6             = 0x0040,
  1090.   P5OUT_7             = 0x0080,
  1091. };
  1092.  
  1093.  
  1094. __no_init volatile union
  1095. {
  1096.   unsigned char P5DIR;  /* Port 5 Direction */
  1097.  
  1098.   struct
  1099.   {
  1100.     unsigned char P5DIR_0        : 1;
  1101.     unsigned char P5DIR_1        : 1;
  1102.     unsigned char P5DIR_2        : 1;
  1103.     unsigned char P5DIR_3        : 1;
  1104.     unsigned char P5DIR_4        : 1;
  1105.     unsigned char P5DIR_5        : 1;
  1106.     unsigned char P5DIR_6        : 1;
  1107.     unsigned char P5DIR_7        : 1;
  1108.   } P5DIR_bit;  
  1109. } @ 0x0032;
  1110.  
  1111.  
  1112. enum {
  1113.   P5DIR_0             = 0x0001,
  1114.   P5DIR_1             = 0x0002,
  1115.   P5DIR_2             = 0x0004,
  1116.   P5DIR_3             = 0x0008,
  1117.   P5DIR_4             = 0x0010,
  1118.   P5DIR_5             = 0x0020,
  1119.   P5DIR_6             = 0x0040,
  1120.   P5DIR_7             = 0x0080,
  1121. };
  1122.  
  1123.  
  1124. __no_init volatile union
  1125. {
  1126.   unsigned char P5SEL;  /* Port 5 Selection */
  1127.  
  1128.   struct
  1129.   {
  1130.     unsigned char P5SEL_0        : 1;
  1131.     unsigned char P5SEL_1        : 1;
  1132.     unsigned char P5SEL_2        : 1;
  1133.     unsigned char P5SEL_3        : 1;
  1134.     unsigned char P5SEL_4        : 1;
  1135.     unsigned char P5SEL_5        : 1;
  1136.     unsigned char P5SEL_6        : 1;
  1137.     unsigned char P5SEL_7        : 1;
  1138.   } P5SEL_bit;  
  1139. } @ 0x0033;
  1140.  
  1141.  
  1142. enum {
  1143.   P5SEL_0             = 0x0001,
  1144.   P5SEL_1             = 0x0002,
  1145.   P5SEL_2             = 0x0004,
  1146.   P5SEL_3             = 0x0008,
  1147.   P5SEL_4             = 0x0010,
  1148.   P5SEL_5             = 0x0020,
  1149.   P5SEL_6             = 0x0040,
  1150.   P5SEL_7             = 0x0080,
  1151. };
  1152.  
  1153.  
  1154. __no_init volatile union
  1155. {
  1156.   unsigned __READ char P6IN;  /* Port 6 Input */
  1157.  
  1158.   struct
  1159.   {
  1160.     unsigned __READ char P6IN_0  : 1;
  1161.     unsigned __READ char P6IN_1  : 1;
  1162.     unsigned __READ char P6IN_2  : 1;
  1163.     unsigned __READ char P6IN_3  : 1;
  1164.     unsigned __READ char P6IN_4  : 1;
  1165.     unsigned __READ char P6IN_5  : 1;
  1166.     unsigned __READ char P6IN_6  : 1;
  1167.     unsigned __READ char P6IN_7  : 1;
  1168.   } P6IN_bit;  
  1169. } @ 0x0034;
  1170.  
  1171.  
  1172. enum {
  1173.   P6IN_0              = 0x0001,
  1174.   P6IN_1              = 0x0002,
  1175.   P6IN_2              = 0x0004,
  1176.   P6IN_3              = 0x0008,
  1177.   P6IN_4              = 0x0010,
  1178.   P6IN_5              = 0x0020,
  1179.   P6IN_6              = 0x0040,
  1180.   P6IN_7              = 0x0080,
  1181. };
  1182.  
  1183.  
  1184. __no_init volatile union
  1185. {
  1186.   unsigned char P6OUT;  /* Port 6 Output */
  1187.  
  1188.   struct
  1189.   {
  1190.     unsigned char P6OUT_0        : 1;
  1191.     unsigned char P6OUT_1        : 1;
  1192.     unsigned char P6OUT_2        : 1;
  1193.     unsigned char P6OUT_3        : 1;
  1194.     unsigned char P6OUT_4        : 1;
  1195.     unsigned char P6OUT_5        : 1;
  1196.     unsigned char P6OUT_6        : 1;
  1197.     unsigned char P6OUT_7        : 1;
  1198.   } P6OUT_bit;  
  1199. } @ 0x0035;
  1200.  
  1201.  
  1202. enum {
  1203.   P6OUT_0             = 0x0001,
  1204.   P6OUT_1             = 0x0002,
  1205.   P6OUT_2             = 0x0004,
  1206.   P6OUT_3             = 0x0008,
  1207.   P6OUT_4             = 0x0010,
  1208.   P6OUT_5             = 0x0020,
  1209.   P6OUT_6             = 0x0040,
  1210.   P6OUT_7             = 0x0080,
  1211. };
  1212.  
  1213.  
  1214. __no_init volatile union
  1215. {
  1216.   unsigned char P6DIR;  /* Port 6 Direction */
  1217.  
  1218.   struct
  1219.   {
  1220.     unsigned char P6DIR_0        : 1;
  1221.     unsigned char P6DIR_1        : 1;
  1222.     unsigned char P6DIR_2        : 1;
  1223.     unsigned char P6DIR_3        : 1;
  1224.     unsigned char P6DIR_4        : 1;
  1225.     unsigned char P6DIR_5        : 1;
  1226.     unsigned char P6DIR_6        : 1;
  1227.     unsigned char P6DIR_7        : 1;
  1228.   } P6DIR_bit;  
  1229. } @ 0x0036;
  1230.  
  1231.  
  1232. enum {
  1233.   P6DIR_0             = 0x0001,
  1234.   P6DIR_1             = 0x0002,
  1235.   P6DIR_2             = 0x0004,
  1236.   P6DIR_3             = 0x0008,
  1237.   P6DIR_4             = 0x0010,
  1238.   P6DIR_5             = 0x0020,
  1239.   P6DIR_6             = 0x0040,
  1240.   P6DIR_7             = 0x0080,
  1241. };
  1242.  
  1243.  
  1244. __no_init volatile union
  1245. {
  1246.   unsigned char P6SEL;  /* Port 6 Selection */
  1247.  
  1248.   struct
  1249.   {
  1250.     unsigned char P6SEL_0        : 1;
  1251.     unsigned char P6SEL_1        : 1;
  1252.     unsigned char P6SEL_2        : 1;
  1253.     unsigned char P6SEL_3        : 1;
  1254.     unsigned char P6SEL_4        : 1;
  1255.     unsigned char P6SEL_5        : 1;
  1256.     unsigned char P6SEL_6        : 1;
  1257.     unsigned char P6SEL_7        : 1;
  1258.   } P6SEL_bit;  
  1259. } @ 0x0037;
  1260.  
  1261.  
  1262. enum {
  1263.   P6SEL_0             = 0x0001,
  1264.   P6SEL_1             = 0x0002,
  1265.   P6SEL_2             = 0x0004,
  1266.   P6SEL_3             = 0x0008,
  1267.   P6SEL_4             = 0x0010,
  1268.   P6SEL_5             = 0x0020,
  1269.   P6SEL_6             = 0x0040,
  1270.   P6SEL_7             = 0x0080,
  1271. };
  1272.  
  1273.  
  1274.  
  1275. /*-------------------------------------------------------------------------
  1276.  *   USART 0
  1277.  *-------------------------------------------------------------------------*/
  1278.  
  1279.  
  1280. __no_init volatile union
  1281. {
  1282.   unsigned char U0CTL;  /* USART 0 Control */
  1283.  
  1284.   struct
  1285.   {
  1286.     unsigned char SWRST          : 1;  /* USART Software Reset */
  1287.     unsigned char MM             : 1;  /* Master Mode off/on */
  1288.     unsigned char SYNC           : 1;  /* UART / SPI mode */
  1289.     unsigned char LISTEN         : 1;  /* Listen mode */
  1290.     unsigned char CHAR           : 1;  /* Data 0:7-bits / 1:8-bits */
  1291.     unsigned char SPB            : 1;  /* Stop Bits 0:one / 1: two */
  1292.     unsigned char PEV            : 1;  /* Parity 0:odd / 1:even */
  1293.     unsigned char PENA           : 1;  /* Parity enable */
  1294.   } U0CTL_bit;  
  1295. } @ 0x0070;
  1296.  
  1297.  
  1298. enum {
  1299.   SWRST               = 0x0001,
  1300.   MM                  = 0x0002,
  1301.   SYNC                = 0x0004,
  1302.   LISTEN              = 0x0008,
  1303.   CHAR                = 0x0010,
  1304.   SPB                 = 0x0020,
  1305.   PEV                 = 0x0040,
  1306.   PENA                = 0x0080,
  1307. };
  1308.  
  1309.  
  1310. __no_init volatile union
  1311. {
  1312.   unsigned char U0TCTL;  /* USART 0 Transmit Control */
  1313.  
  1314.   struct
  1315.   {
  1316.     unsigned char TXEPT          : 1;  /* TX Buffer empty */
  1317.     unsigned char STC            : 1;  /* SPI: STC enable 0:on / 1:off */
  1318.     unsigned char TXWAKE         : 1;  /* TX Wake up mode */
  1319.     unsigned char URXSE          : 1;  /* Receive Start edge select */
  1320.     unsigned char SSEL0          : 1;  /* Clock Source Select 0 */
  1321.     unsigned char SSEL1          : 1;  /* Clock Source Select 1 */
  1322.     unsigned char CKPL           : 1;  /* Clock Polarity */
  1323.     unsigned char CKPH           : 1;  /* SPI: Clock Phase */
  1324.   } U0TCTL_bit;  
  1325. } @ 0x0071;
  1326.  
  1327.  
  1328. enum {
  1329.   TXEPT               = 0x0001,
  1330.   STC                 = 0x0002,
  1331.   TXWAKE              = 0x0004,
  1332.   URXSE               = 0x0008,
  1333.   SSEL0               = 0x0010,
  1334.   SSEL1               = 0x0020,
  1335.   CKPL                = 0x0040,
  1336.   CKPH                = 0x0080,
  1337. };
  1338.  
  1339.  
  1340. __no_init volatile union
  1341. {
  1342.   unsigned char U0RCTL;  /* USART 0 Receive Control */
  1343.  
  1344.   struct
  1345.   {
  1346.     unsigned char RXERR          : 1;  /* RX Error Error */
  1347.     unsigned char RXWAKE         : 1;  /* RX Wake up detect */
  1348.     unsigned char URXWIE         : 1;  /* RX Wake up interrupt enable */
  1349.     unsigned char URXEIE         : 1;  /* RX Error interrupt enable */
  1350.     unsigned char BRK            : 1;  /* Break detected */
  1351.     unsigned char OE             : 1;  /* Overrun Error */
  1352.     unsigned char PE             : 1;  /* Parity Error */
  1353.     unsigned char FE             : 1;  /* Frame Error */
  1354.   } U0RCTL_bit;  
  1355. } @ 0x0072;
  1356.  
  1357.  
  1358. enum {
  1359.   RXERR               = 0x0001,
  1360.   RXWAKE              = 0x0002,
  1361.   URXWIE              = 0x0004,
  1362.   URXEIE              = 0x0008,
  1363.   BRK                 = 0x0010,
  1364.   OE                  = 0x0020,
  1365.   PE                  = 0x0040,
  1366.   FE                  = 0x0080,
  1367. };
  1368.  
  1369.  
  1370.  /* USART 0 Modulation Control */
  1371. __no_init volatile unsigned char U0MCTL @ 0x0073;  
  1372.  
  1373.  
  1374.  /* USART 0 Baud Rate 0 */
  1375. __no_init volatile unsigned char U0BR0 @ 0x0074;  
  1376.  
  1377.  
  1378.  /* USART 0 Baud Rate 1 */
  1379. __no_init volatile unsigned char U0BR1 @ 0x0075;  
  1380.  
  1381.  
  1382.  /* USART 0 Receive Buffer */
  1383. __no_init volatile unsigned __READ char U0RXBUF @ 0x0076;  
  1384.  
  1385.  
  1386.  /* USART 0 Transmit Buffer  */
  1387. __no_init volatile unsigned char U0TXBUF @ 0x0077;  
  1388.  
  1389.  
  1390. /* Alternate register names */
  1391.  
  1392. #define UCTL0               U0CTL     /* USART 0 Control */
  1393. #define UTCTL0              U0TCTL    /* USART 0 Transmit Control */
  1394. #define URCTL0              U0RCTL    /* USART 0 Receive Control */
  1395. #define UMCTL0              U0MCTL    /* USART 0 Modulation Control */
  1396. #define UBR00               U0BR0     /* USART 0 Baud Rate 0 */
  1397. #define UBR10               U0BR1     /* USART 0 Baud Rate 1 */
  1398. #define RXBUF0              U0RXBUF   /* USART 0 Receive Buffer */
  1399. #define TXBUF0              U0TXBUF   /* USART 0 Transmit Buffer */
  1400. #define UCTL0_              U0CTL     /* USART 0 Control */
  1401. #define UTCTL0_             U0TCTL    /* USART 0 Transmit Control */
  1402. #define URCTL0_             U0RCTL    /* USART 0 Receive Control */
  1403. #define UMCTL0_             U0MCTL    /* USART 0 Modulation Control */
  1404. #define UBR00_              U0BR0     /* USART 0 Baud Rate 0 */
  1405. #define UBR10_              U0BR1     /* USART 0 Baud Rate 1 */
  1406. #define RXBUF0_             U0RXBUF   /* USART 0 Receive Buffer */
  1407. #define TXBUF0_             U0TXBUF   /* USART 0 Transmit Buffer */
  1408. #define UCTL_0              U0CTL     /* USART 0 Control */
  1409. #define UTCTL_0             U0TCTL    /* USART 0 Transmit Control */
  1410. #define URCTL_0             U0RCTL    /* USART 0 Receive Control */
  1411. #define UMCTL_0             U0MCTL    /* USART 0 Modulation Control */
  1412. #define UBR0_0              U0BR0     /* USART 0 Baud Rate 0 */
  1413. #define UBR1_0              U0BR1     /* USART 0 Baud Rate 1 */
  1414. #define RXBUF_0             U0RXBUF   /* USART 0 Receive Buffer */
  1415. #define TXBUF_0             U0TXBUF   /* USART 0 Transmit Buffer */
  1416. #define UCTL_0_             U0CTL     /* USART 0 Control */
  1417. #define UTCTL_0_            U0TCTL    /* USART 0 Transmit Control */
  1418. #define URCTL_0_            U0RCTL    /* USART 0 Receive Control */
  1419. #define UMCTL_0_            U0MCTL    /* USART 0 Modulation Control */
  1420. #define UBR0_0_             U0BR0     /* USART 0 Baud Rate 0 */
  1421. #define UBR1_0_             U0BR1     /* USART 0 Baud Rate 1 */
  1422. #define RXBUF_0_            U0RXBUF   /* USART 0 Receive Buffer */
  1423. #define TXBUF_0_            U0TXBUF   /* USART 0 Transmit Buffer */
  1424.  
  1425.  
  1426. /*-------------------------------------------------------------------------
  1427.  *   USART 1
  1428.  *-------------------------------------------------------------------------*/
  1429.  
  1430.  
  1431. __no_init volatile union
  1432. {
  1433.   unsigned char U1CTL;  /* USART 1 Control */
  1434.  
  1435.   struct
  1436.   {
  1437.     unsigned char SWRST          : 1;  /* USART Software Reset */
  1438.     unsigned char MM             : 1;  /* Master Mode off/on */
  1439.     unsigned char SYNC           : 1;  /* UART / SPI mode */
  1440.     unsigned char LISTEN         : 1;  /* Listen mode */
  1441.     unsigned char CHAR           : 1;  /* Data 0:7-bits / 1:8-bits */
  1442.     unsigned char SPB            : 1;  /* Stop Bits 0:one / 1: two */
  1443.     unsigned char PEV            : 1;  /* Parity 0:odd / 1:even */
  1444.     unsigned char PENA           : 1;  /* Parity enable */
  1445.   } U1CTL_bit;  
  1446. } @ 0x0078;
  1447.  
  1448.  
  1449.  
  1450.  
  1451. __no_init volatile union
  1452. {
  1453.   unsigned char U1TCTL;  /* USART 1 Transmit Control */
  1454.  
  1455.   struct
  1456.   {
  1457.     unsigned char TXEPT          : 1;  /* TX Buffer empty */
  1458.     unsigned char STC            : 1;  /* SPI: STC enable 0:on / 1:off */
  1459.     unsigned char TXWAKE         : 1;  /* TX Wake up mode */
  1460.     unsigned char URXSE          : 1;  /* Receive Start edge select */
  1461.     unsigned char SSEL0          : 1;  /* Clock Source Select 0 */
  1462.     unsigned char SSEL1          : 1;  /* Clock Source Select 1 */
  1463.     unsigned char CKPL           : 1;  /* Clock Polarity */
  1464.     unsigned char CKPH           : 1;  /* SPI: Clock Phase */
  1465.   } U1TCTL_bit;  
  1466. } @ 0x0079;
  1467.  
  1468.  
  1469.  
  1470.  
  1471. __no_init volatile union
  1472. {
  1473.   unsigned char U1RCTL;  /* USART 1 Receive Control */
  1474.  
  1475.   struct
  1476.   {
  1477.     unsigned char RXERR          : 1;  /* RX Error Error */
  1478.     unsigned char RXWAKE         : 1;  /* RX Wake up detect */
  1479.     unsigned char URXWIE         : 1;  /* RX Wake up interrupt enable */
  1480.     unsigned char URXEIE         : 1;  /* RX Error interrupt enable */
  1481.     unsigned char BRK            : 1;  /* Break detected */
  1482.     unsigned char OE             : 1;  /* Overrun Error */
  1483.     unsigned char PE             : 1;  /* Parity Error */
  1484.     unsigned char FE             : 1;  /* Frame Error */
  1485.   } U1RCTL_bit;  
  1486. } @ 0x007A;
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  /* USART 1 Modulation Control */
  1492. __no_init volatile unsigned char U1MCTL @ 0x007B;  
  1493.  
  1494.  
  1495.  /* USART 1 Baud Rate 0 */
  1496. __no_init volatile unsigned char U1BR0 @ 0x007C;  
  1497.  
  1498.  
  1499.  /* USART 1 Baud Rate 1 */
  1500. __no_init volatile unsigned char U1BR1 @ 0x007D;  
  1501.  
  1502.  
  1503.  /* USART 1 Receive Buffer */
  1504. __no_init volatile unsigned __READ char U1RXBUF @ 0x007E;  
  1505.  
  1506.  
  1507.  /* USART 1 Transmit Buffer */
  1508. __no_init volatile unsigned char U1TXBUF @ 0x007F;  
  1509.  
  1510.  
  1511. /* Alternate register names */
  1512.  
  1513. #define UCTL1               U1CTL     /* USART 1 Control */
  1514. #define UTCTL1              U1TCTL    /* USART 1 Transmit Control */
  1515. #define URCTL1              U1RCTL    /* USART 1 Receive Control */
  1516. #define UMCTL1              U1MCTL    /* USART 1 Modulation Control */
  1517. #define UBR01               U1BR0     /* USART 1 Baud Rate 0 */
  1518. #define UBR11               U1BR1     /* USART 1 Baud Rate 1 */
  1519. #define RXBUF1              U1RXBUF   /* USART 1 Receive Buffer */
  1520. #define TXBUF1              U1TXBUF   /* USART 1 Transmit Buffer */
  1521. #define UCTL1_              U1CTL     /* USART 1 Control */
  1522. #define UTCTL1_             U1TCTL    /* USART 1 Transmit Control */
  1523. #define URCTL1_             U1RCTL    /* USART 1 Receive Control */
  1524. #define UMCTL1_             U1MCTL    /* USART 1 Modulation Control */
  1525. #define UBR01_              U1BR0     /* USART 1 Baud Rate 0 */
  1526. #define UBR11_              U1BR1     /* USART 1 Baud Rate 1 */
  1527. #define RXBUF1_             U1RXBUF   /* USART 1 Receive Buffer */
  1528. #define TXBUF1_             U1TXBUF   /* USART 1 Transmit Buffer */
  1529. #define UCTL_1              U1CTL     /* USART 1 Control */
  1530. #define UTCTL_1             U1TCTL    /* USART 1 Transmit Control */
  1531. #define URCTL_1             U1RCTL    /* USART 1 Receive Control */
  1532. #define UMCTL_1             U1MCTL    /* USART 1 Modulation Control */
  1533. #define UBR0_1              U1BR0     /* USART 1 Baud Rate 0 */
  1534. #define UBR1_1              U1BR1     /* USART 1 Baud Rate 1 */
  1535. #define RXBUF_1             U1RXBUF   /* USART 1 Receive Buffer */
  1536. #define TXBUF_1             U1TXBUF   /* USART 1 Transmit Buffer */
  1537. #define UCTL_1_             U1CTL     /* USART 1 Control */
  1538. #define UTCTL_1_            U1TCTL    /* USART 1 Transmit Control */
  1539. #define URCTL_1_            U1RCTL    /* USART 1 Receive Control */
  1540. #define UMCTL_1_            U1MCTL    /* USART 1 Modulation Control */
  1541. #define UBR0_1_             U1BR0     /* USART 1 Baud Rate 0 */
  1542. #define UBR1_1_             U1BR1     /* USART 1 Baud Rate 1 */
  1543. #define RXBUF_1_            U1RXBUF   /* USART 1 Receive Buffer */
  1544. #define TXBUF_1_            U1TXBUF   /* USART 1 Transmit Buffer */
  1545.  
  1546.  
  1547. /*-------------------------------------------------------------------------
  1548.  *   Timer A
  1549.  *-------------------------------------------------------------------------*/
  1550.  
  1551.  
  1552. __no_init volatile union
  1553. {
  1554.   unsigned __READ short TAIV;  /* Timer A Interrupt Vector Word */
  1555.  
  1556.   struct
  1557.   {
  1558.     unsigned __READ short        : 1;
  1559.     unsigned __READ short IRQVEC : 3;
  1560.     unsigned __READ short        : 12;
  1561.   } TAIV_bit;  
  1562. } @ 0x012E;
  1563.  
  1564.  
  1565. enum {
  1566.   IRQVEC              = 0x0008,
  1567. };
  1568.  
  1569.  
  1570. __no_init volatile union
  1571. {
  1572.   unsigned short TACTL;  /* Timer A Control */
  1573.  
  1574.   struct
  1575.   {
  1576.     unsigned short TAIFG         : 1;  /* Timer A counter interrupt flag */
  1577.     unsigned short TAIE          : 1;  /* Timer A counter interrupt enable */
  1578.     unsigned short TACLR         : 1;  /* Timer A counter clear */
  1579.     unsigned short               : 1;
  1580.     unsigned short TAMC          : 2;  /* Timer A mode control 0 */
  1581.     unsigned short TAID          : 2;  /* Timer A clock input devider */
  1582.     unsigned short TASSEL        : 2;  /* Timer A clock source select */
  1583.     unsigned short               : 6;
  1584.   } TACTL_bit;  
  1585. } @ 0x0160;
  1586.  
  1587.  
  1588. enum {
  1589.   TAIFG               = 0x0001,
  1590.   TAIE                = 0x0002,
  1591.   TACLR               = 0x0004,
  1592.   TAMC                = 0x0020,
  1593.   TAID                = 0x0080,
  1594.   TASSEL              = 0x0200,
  1595. };
  1596.  
  1597.  
  1598. __no_init volatile union
  1599. {
  1600.   unsigned short TACCTL0;  /* Timer A Capture/Compare Control 0 */
  1601.  
  1602.   struct
  1603.   {
  1604.     unsigned short CCIFG         : 1;  /* Capture/compare interrupt flag */
  1605.     unsigned short COV           : 1;  /* Capture/compare overflow flag */
  1606.     unsigned short OUT           : 1;  /* PWM Output signal if output mode 0 */
  1607.     unsigned short CCI           : 1;  /* Capture input signal (read) */
  1608.     unsigned short CCIE          : 1;  /* Capture/compare interrupt enable */
  1609.     unsigned short OUTMOD        : 3;  /* Output mode */
  1610.     unsigned short CAP           : 1;  /* Capture mode: 1 /Compare mode : 0 */
  1611.     unsigned short               : 1;
  1612.     unsigned short SCCI          : 1;  /* Latched capture signal (read) */
  1613.     unsigned short SCS           : 1;  /* Capture sychronize */
  1614.     unsigned short CCIS          : 2;  /* Capture input select */
  1615.     unsigned short CM            : 2;  /* Capture mode */
  1616.   } TACCTL0_bit;  
  1617. } @ 0x0162;
  1618.  
  1619.  
  1620. enum {
  1621.   CCIFG               = 0x0001,
  1622.   COV                 = 0x0002,
  1623.   OUT                 = 0x0004,
  1624.   CCI                 = 0x0008,
  1625.   CCIE                = 0x0010,
  1626.   OUTMOD              = 0x0080,
  1627.   CAP                 = 0x0100,
  1628.   SCCI                = 0x0400,
  1629.   SCS                 = 0x0800,
  1630.   CCIS                = 0x2000,
  1631.   CM                  = 0x8000,
  1632. };
  1633.  
  1634.  
  1635. __no_init volatile union
  1636. {
  1637.   unsigned short TACCTL1;  /* Timer A Capture/Compare Control 1 */
  1638.  
  1639.   struct
  1640.   {
  1641.     unsigned short CCIFG         : 1;  /* Capture/compare interrupt flag */
  1642.     unsigned short COV           : 1;  /* Capture/compare overflow flag */
  1643.     unsigned short OUT           : 1;  /* PWM Output signal if output mode 0 */
  1644.     unsigned short CCI           : 1;  /* Capture input signal (read) */
  1645.     unsigned short CCIE          : 1;  /* Capture/compare interrupt enable */
  1646.     unsigned short OUTMOD        : 3;  /* Output mode */
  1647.     unsigned short CAP           : 1;  /* Capture mode: 1 /Compare mode : 0 */
  1648.     unsigned short               : 1;
  1649.     unsigned short SCCI          : 1;  /* Latched capture signal (read) */
  1650.     unsigned short SCS           : 1;  /* Capture sychronize */
  1651.     unsigned short CCIS          : 2;  /* Capture input select */
  1652.     unsigned short CM            : 2;  /* Capture mode */
  1653.   } TACCTL1_bit;  
  1654. } @ 0x0164;
  1655.  
  1656.  
  1657.  
  1658.  
  1659. __no_init volatile union
  1660. {
  1661.   unsigned short TACCTL2;  /* Timer A Capture/Compare Control 2 */
  1662.  
  1663.   struct
  1664.   {
  1665.     unsigned short CCIFG         : 1;  /* Capture/compare interrupt flag */
  1666.     unsigned short COV           : 1;  /* Capture/compare overflow flag */
  1667.     unsigned short OUT           : 1;  /* PWM Output signal if output mode 0 */
  1668.     unsigned short CCI           : 1;  /* Capture input signal (read) */
  1669.     unsigned short CCIE          : 1;  /* Capture/compare interrupt enable */
  1670.     unsigned short OUTMOD        : 3;  /* Output mode */
  1671.     unsigned short CAP           : 1;  /* Capture mode: 1 /Compare mode : 0 */
  1672.     unsigned short               : 1;
  1673.     unsigned short SCCI          : 1;  /* Latched capture signal (read) */
  1674.     unsigned short SCS           : 1;  /* Capture sychronize */
  1675.     unsigned short CCIS          : 2;  /* Capture input select */
  1676.     unsigned short CM            : 2;  /* Capture mode */
  1677.   } TACCTL2_bit;  
  1678. } @ 0x0166;
  1679.  
  1680.  
  1681.  
  1682.  
  1683.  /* Timer A */
  1684. __no_init volatile unsigned short TAR @ 0x0170;  
  1685.  
  1686.  
  1687.  /* Timer A Capture/Compare 0 */
  1688. __no_init volatile unsigned short TACCR0 @ 0x0172;  
  1689.  
  1690.  
  1691.  /* Timer A Capture/Compare 1 */
  1692. __no_init volatile unsigned short TACCR1 @ 0x0174;  
  1693.  
  1694.  
  1695.  /* Timer A Capture/Compare 2 */
  1696. __no_init volatile unsigned short TACCR2 @ 0x0176;  
  1697.  
  1698.  
  1699. #define MC_0            (0*0x10u)  /* Timer A mode control: 0 - Stop */
  1700. #define MC_1            (1*0x10u)  /* Timer A mode control: 1 - Up to CCR0 */
  1701. #define MC_2            (2*0x10u)  /* Timer A mode control: 2 - Continous up */
  1702. #define MC_3            (3*0x10u)  /* Timer A mode control: 3 - Up/Down */
  1703. #define ID_0            (0*0x40u)  /* Timer A input divider: 0 - /1 */
  1704. #define ID_1            (1*0x40u)  /* Timer A input divider: 1 - /2 */
  1705. #define ID_2            (2*0x40u)  /* Timer A input divider: 2 - /4 */
  1706. #define ID_3            (3*0x40u)  /* Timer A input divider: 3 - /8 */
  1707. #define TASSEL_0        (0*0x100u) /* Timer A clock source select: 0 - TACLK */
  1708. #define TASSEL_1        (1*0x100u) /* Timer A clock source select: 1 - ACLK  */
  1709. #define TASSEL_2        (2*0x100u) /* Timer A clock source select: 2 - SMCLK */
  1710. #define TASSEL_3        (3*0x100u) /* Timer A clock source select: 3 - INCLK */
  1711.  
  1712. #define OUTMOD_0        (0*0x20u)  /* PWM output mode: 0 - output only */
  1713. #define OUTMOD_1        (1*0x20u)  /* PWM output mode: 1 - set */
  1714. #define OUTMOD_2        (2*0x20u)  /* PWM output mode: 2 - PWM toggle/reset */
  1715. #define OUTMOD_3        (3*0x20u)  /* PWM output mode: 3 - PWM set/reset */
  1716. #define OUTMOD_4        (4*0x20u)  /* PWM output mode: 4 - toggle */
  1717. #define OUTMOD_5        (5*0x20u)  /* PWM output mode: 5 - Reset */
  1718. #define OUTMOD_6        (6*0x20u)  /* PWM output mode: 6 - PWM toggle/set */
  1719. #define OUTMOD_7        (7*0x20u)  /* PWM output mode: 7 - PWM reset/set */
  1720. #define CCIS_0          (0*0x1000u) /* Capture input select: 0 - CCIxA */
  1721. #define CCIS_1          (1*0x1000u) /* Capture input select: 1 - CCIxB */
  1722. #define CCIS_2          (2*0x1000u) /* Capture input select: 2 - GND */
  1723. #define CCIS_3          (3*0x1000u) /* Capture input select: 3 - Vcc */
  1724. #define CM_0            (0*0x4000u) /* Capture mode: 0 - disabled */
  1725. #define CM_1            (1*0x4000u) /* Capture mode: 1 - pos. edge */
  1726. #define CM_2            (2*0x4000u) /* Capture mode: 1 - neg. edge */
  1727. #define CM_3            (3*0x4000u) /* Capture mode: 1 - both edges */
  1728.  
  1729. /* Alternate register names */
  1730. #define CCTL0           TACCTL0   /* Timer A Capture/Compare Control 0 */
  1731. #define CCTL1           TACCTL1   /* Timer A Capture/Compare Control 1 */
  1732. #define CCTL2           TACCTL2   /* Timer A Capture/Compare Control 2 */
  1733. #define CCR0            TACCR0    /* Timer A Capture/Compare 0 */
  1734. #define CCR1            TACCR1    /* Timer A Capture/Compare 1 */
  1735. #define CCR2            TACCR2    /* Timer A Capture/Compare 2 */
  1736. #define CCTL0_          TACCTL0   /* Timer A Capture/Compare Control 0 */
  1737. #define CCTL1_          TACCTL1   /* Timer A Capture/Compare Control 1 */
  1738. #define CCTL2_          TACCTL2   /* Timer A Capture/Compare Control 2 */
  1739. #define CCR0_           TACCR0    /* Timer A Capture/Compare 0 */
  1740. #define CCR1_           TACCR1    /* Timer A Capture/Compare 1 */
  1741. #define CCR2_           TACCR2    /* Timer A Capture/Compare 2 */
  1742.  
  1743.  
  1744. /*-------------------------------------------------------------------------
  1745.  *   Timer B
  1746.  *-------------------------------------------------------------------------*/
  1747.  
  1748.  
  1749. __no_init volatile union
  1750. {
  1751.   unsigned __READ short TBIV;  /* Timer B Interrupt Vector Word */
  1752.  
  1753.   struct
  1754.   {
  1755.     unsigned __READ short        : 1;
  1756.     unsigned __READ short IRQVEC : 3;
  1757.     unsigned __READ short        : 12;
  1758.   } TBIV_bit;  
  1759. } @ 0x011E;
  1760.  
  1761.  
  1762.  
  1763.  
  1764. __no_init volatile union
  1765. {
  1766.   unsigned short TBCTL;  /* Timer B Control */
  1767.  
  1768.   struct
  1769.   {
  1770.     unsigned short TBIFG         : 1;  /* Timer B interrupt flag */
  1771.     unsigned short TBIE          : 1;  /* Timer B interrupt enable */
  1772.     unsigned short TBCLR         : 1;  /* Timer B counter clear */
  1773.     unsigned short               : 1;
  1774.     unsigned short TBMC          : 2;  /* Timer B mode control 1 */
  1775.     unsigned short TBID          : 2;  /* Timer B clock input devider */
  1776.     unsigned short TBSSEL        : 2;  /* Timer B clock source select */
  1777.     unsigned short               : 1;
  1778.     unsigned short TBCNTL        : 2;  /* Timer B Control */
  1779.     unsigned short TBCLGRP       : 2;  /* Timer B Compare latch load group */
  1780.     unsigned short               : 1;
  1781.   } TBCTL_bit;  
  1782. } @ 0x0180;
  1783.  
  1784.  
  1785. enum {
  1786.   TBIFG               = 0x0001,
  1787.   TBIE                = 0x0002,
  1788.   TBCLR               = 0x0004,
  1789.   TBMC                = 0x0020,
  1790.   TBID                = 0x0080,
  1791.   TBSSEL              = 0x0200,
  1792.   TBCNTL              = 0x1000,
  1793.   TBCLGRP             = 0x4000,
  1794. };
  1795.  
  1796.  
  1797. __no_init volatile union
  1798. {
  1799.   unsigned short TBCCTL0;  /* Timer B Capture/Compare Control 0 */
  1800.  
  1801.   struct
  1802.   {
  1803.     unsigned short CCIFG         : 1;  /* Capture/compare interrupt flag */
  1804.     unsigned short COV           : 1;  /* Capture/compare overflow flag */
  1805.     unsigned short OUT           : 1;  /* PWM Output signal if output mode 0 */
  1806.     unsigned short CCI           : 1;  /* Capture input signal (read) */
  1807.     unsigned short CCIE          : 1;  /* Capture/compare interrupt enable */
  1808.     unsigned short OUTMOD        : 3;  /* Output mode 0 */
  1809.     unsigned short CAP           : 1;  /* Capture mode: 1 /Compare mode : 0 */
  1810.     unsigned short CLLD          : 2;  /* Compare latch load source */
  1811.     unsigned short SCS           : 1;  /* Capture sychronize */
  1812.     unsigned short CCIS          : 2;  /* Capture input select */
  1813.     unsigned short CM            : 2;  /* Capture mode */
  1814.   } TBCCTL0_bit;  
  1815. } @ 0x0182;
  1816.  
  1817.  
  1818. enum {
  1819.   CLLD                = 0x0400,
  1820. };
  1821.  
  1822.  
  1823. __no_init volatile union
  1824. {
  1825.   unsigned short TBCCTL1;  /* Timer B Capture/Compare Control 1 */
  1826.  
  1827.   struct
  1828.   {
  1829.     unsigned short CCIFG         : 1;  /* Capture/compare interrupt flag */
  1830.     unsigned short COV           : 1;  /* Capture/compare overflow flag */
  1831.     unsigned short OUT           : 1;  /* PWM Output signal if output mode 0 */
  1832.     unsigned short CCI           : 1;  /* Capture input signal (read) */
  1833.     unsigned short CCIE          : 1;  /* Capture/compare interrupt enable */
  1834.     unsigned short OUTMOD        : 3;  /* Output mode 0 */
  1835.     unsigned short CAP           : 1;  /* Capture mode: 1 /Compare mode : 0 */
  1836.     unsigned short CLLD          : 2;  /* Compare latch load source */
  1837.     unsigned short SCS           : 1;  /* Capture sychronize */
  1838.     unsigned short CCIS          : 2;  /* Capture input select */
  1839.     unsigned short CM            : 2;  /* Capture mode */
  1840.   } TBCCTL1_bit;  
  1841. } @ 0x0184;
  1842.  
  1843.  
  1844.  
  1845.  
  1846. __no_init volatile union
  1847. {
  1848.   unsigned short TBCCTL2;  /* Timer B Capture/Compare Control 2 */
  1849.  
  1850.   struct
  1851.   {
  1852.     unsigned short CCIFG         : 1;  /* Capture/compare interrupt flag */
  1853.     unsigned short COV           : 1;  /* Capture/compare overflow flag */
  1854.     unsigned short OUT           : 1;  /* PWM Output signal if output mode 0 */
  1855.     unsigned short CCI           : 1;  /* Capture input signal (read) */
  1856.     unsigned short CCIE          : 1;  /* Capture/compare interrupt enable */
  1857.     unsigned short OUTMOD        : 3;  /* Output mode 0 */
  1858.     unsigned short CAP           : 1;  /* Capture mode: 1 /Compare mode : 0 */
  1859.     unsigned short CLLD          : 2;  /* Compare latch load source */
  1860.     unsigned short SCS           : 1;  /* Capture sychronize */
  1861.     unsigned short CCIS          : 2;  /* Capture input select */
  1862.     unsigned short CM            : 2;  /* Capture mode */
  1863.   } TBCCTL2_bit;  
  1864. } @ 0x0186;
  1865.  
  1866.  
  1867.  
  1868.  
  1869. __no_init volatile union
  1870. {
  1871.   unsigned short TBCCTL3;  /* Timer B Capture/Compare Control 3 */
  1872.  
  1873.   struct
  1874.   {
  1875.     unsigned short CCIFG         : 1;  /* Capture/compare interrupt flag */
  1876.     unsigned short COV           : 1;  /* Capture/compare overflow flag */
  1877.     unsigned short OUT           : 1;  /* PWM Output signal if output mode 0 */
  1878.     unsigned short CCI           : 1;  /* Capture input signal (read) */
  1879.     unsigned short CCIE          : 1;  /* Capture/compare interrupt enable */
  1880.     unsigned short OUTMOD        : 3;  /* Output mode 0 */
  1881.     unsigned short CAP           : 1;  /* Capture mode: 1 /Compare mode : 0 */
  1882.     unsigned short CLLD          : 2;  /* Compare latch load source */
  1883.     unsigned short SCS           : 1;  /* Capture sychronize */
  1884.     unsigned short CCIS          : 2;  /* Capture input select */
  1885.     unsigned short CM            : 2;  /* Capture mode */
  1886.   } TBCCTL3_bit;  
  1887. } @ 0x0188;
  1888.  
  1889.  
  1890.  
  1891.  
  1892. __no_init volatile union
  1893. {
  1894.   unsigned short TBCCTL4;  /* Timer B Capture/Compare Control 4 */
  1895.  
  1896.   struct
  1897.   {
  1898.     unsigned short CCIFG         : 1;  /* Capture/compare interrupt flag */
  1899.     unsigned short COV           : 1;  /* Capture/compare overflow flag */
  1900.     unsigned short OUT           : 1;  /* PWM Output signal if output mode 0 */
  1901.     unsigned short CCI           : 1;  /* Capture input signal (read) */
  1902.     unsigned short CCIE          : 1;  /* Capture/compare interrupt enable */
  1903.     unsigned short OUTMOD        : 3;  /* Output mode 0 */
  1904.     unsigned short CAP           : 1;  /* Capture mode: 1 /Compare mode : 0 */
  1905.     unsigned short CLLD          : 2;  /* Compare latch load source */
  1906.     unsigned short SCS           : 1;  /* Capture sychronize */
  1907.     unsigned short CCIS          : 2;  /* Capture input select */
  1908.     unsigned short CM            : 2;  /* Capture mode */
  1909.   } TBCCTL4_bit;  
  1910. } @ 0x018A;
  1911.  
  1912.  
  1913.  
  1914.  
  1915. __no_init volatile union
  1916. {
  1917.   unsigned short TBCCTL5;  /* Timer B Capture/Compare Control 5 */
  1918.  
  1919.   struct
  1920.   {
  1921.     unsigned short CCIFG         : 1;  /* Capture/compare interrupt flag */
  1922.     unsigned short COV           : 1;  /* Capture/compare overflow flag */
  1923.     unsigned short OUT           : 1;  /* PWM Output signal if output mode 0 */
  1924.     unsigned short CCI           : 1;  /* Capture input signal (read) */
  1925.     unsigned short CCIE          : 1;  /* Capture/compare interrupt enable */
  1926.     unsigned short OUTMOD        : 3;  /* Output mode 0 */
  1927.     unsigned short CAP           : 1;  /* Capture mode: 1 /Compare mode : 0 */
  1928.     unsigned short CLLD          : 2;  /* Compare latch load source */
  1929.     unsigned short SCS           : 1;  /* Capture sychronize */
  1930.     unsigned short CCIS          : 2;  /* Capture input select */
  1931.     unsigned short CM            : 2;  /* Capture mode */
  1932.   } TBCCTL5_bit;  
  1933. } @ 0x018C;
  1934.  
  1935.  
  1936.  
  1937.  
  1938. __no_init volatile union
  1939. {
  1940.   unsigned short TBCCTL6;  /* Timer B Capture/Compare Control 6 */
  1941.  
  1942.   struct
  1943.   {
  1944.     unsigned short CCIFG         : 1;  /* Capture/compare interrupt flag */
  1945.     unsigned short COV           : 1;  /* Capture/compare overflow flag */
  1946.     unsigned short OUT           : 1;  /* PWM Output signal if output mode 0 */
  1947.     unsigned short CCI           : 1;  /* Capture input signal (read) */
  1948.     unsigned short CCIE          : 1;  /* Capture/compare interrupt enable */
  1949.     unsigned short OUTMOD        : 3;  /* Output mode 0 */
  1950.     unsigned short CAP           : 1;  /* Capture mode: 1 /Compare mode : 0 */
  1951.     unsigned short CLLD          : 2;  /* Compare latch load source */
  1952.     unsigned short SCS           : 1;  /* Capture sychronize */
  1953.     unsigned short CCIS          : 2;  /* Capture input select */
  1954.     unsigned short CM            : 2;  /* Capture mode */
  1955.   } TBCCTL6_bit;  
  1956. } @ 0x018E;
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  /* Timer B */
  1962. __no_init volatile unsigned short TBR @ 0x0190;  
  1963.  
  1964.  
  1965.  /* Timer B Capture/Compare 0 */
  1966. __no_init volatile unsigned short TBCCR0 @ 0x0192;  
  1967.  
  1968.  
  1969.  /* Timer B Capture/Compare 1 */
  1970. __no_init volatile unsigned short TBCCR1 @ 0x0194;  
  1971.  
  1972.  
  1973.  /* Timer B Capture/Compare 2 */
  1974. __no_init volatile unsigned short TBCCR2 @ 0x0196;  
  1975.  
  1976.  
  1977.  /* Timer B Capture/Compare 3 */
  1978. __no_init volatile unsigned short TBCCR3 @ 0x0198;  
  1979.  
  1980.  
  1981.  /* Timer B Capture/Compare 4 */
  1982. __no_init volatile unsigned short TBCCR4 @ 0x019A;  
  1983.  
  1984.  
  1985.  /* Timer B Capture/Compare 5 */
  1986. __no_init volatile unsigned short TBCCR5 @ 0x019C;  
  1987.  
  1988.  
  1989.  /* Timer B Capture/Compare 6 */
  1990. __no_init volatile unsigned short TBCCR6 @ 0x019E;  
  1991.  
  1992.  
  1993. #define TBSSEL_0      (0*0x0100u)  /* Clock Source: TBCLK */
  1994. #define TBSSEL_1      (1*0x0100u)  /* Clock Source: ACLK  */
  1995. #define TBSSEL_2      (2*0x0100u)  /* Clock Source: SMCLK */
  1996. #define TBSSEL_3      (3*0x0100u)  /* Clock Source: INCLK */
  1997. #define CNTL_0        (0*0x0800u)  /* Counter lenght: 16 bit */
  1998. #define CNTL_1        (1*0x0800u)  /* Counter lenght: 12 bit */
  1999. #define CNTL_2        (2*0x0800u)  /* Counter lenght: 10 bit */
  2000. #define CNTL_3        (3*0x0800u)  /* Counter lenght:  8 bit */
  2001. #define SHR_0         (0*0x2000u)  /* Timer B Group: 0 - individually */
  2002. #define SHR_1         (1*0x2000u)  /* Timer B Group: 1 - 3 groups (1-2, 3-4, 5-6) */
  2003. #define SHR_2         (2*0x2000u)  /* Timer B Group: 2 - 2 groups (1-3, 4-6)*/
  2004. #define SHR_3         (3*0x2000u)  /* Timer B Group: 3 - 1 group (all) */
  2005. #define TBCLGRP_0     (0*0x2000u)  /* Timer B Group: 0 - individually */
  2006. #define TBCLGRP_1     (1*0x2000u)  /* Timer B Group: 1 - 3 groups (1-2, 3-4, 5-6) */
  2007. #define TBCLGRP_2     (2*0x2000u)  /* Timer B Group: 2 - 2 groups (1-3, 4-6)*/
  2008. #define TBCLGRP_3     (3*0x2000u)  /* Timer B Group: 3 - 1 group (all) */
  2009.  
  2010. #define CLLD1         (0x0400)     /* Compare latch load source 1 */
  2011. #define CLLD0         (0x0200)     /* Compare latch load source 0 */
  2012.  
  2013. #define SLSHR1        (0x0400)     /* Compare latch load source 1 */
  2014. #define SLSHR0        (0x0200)     /* Compare latch load source 0 */
  2015.  
  2016. #define SLSHR_0       (0*0x0200u)  /* Compare latch load sourec : 0 - immediate */
  2017. #define SLSHR_1       (1*0x0200u)  /* Compare latch load sourec : 1 - TBR counts to 0 */
  2018. #define SLSHR_2       (2*0x0200u)  /* Compare latch load sourec : 2 - up/down */
  2019. #define SLSHR_3       (3*0x0200u)  /* Compare latch load sourec : 3 - TBR counts to TBCTL0 */
  2020.  
  2021. #define CLLD_0        (0*0x0200u)  /* Compare latch load sourec : 0 - immediate */
  2022. #define CLLD_1        (1*0x0200u)  /* Compare latch load sourec : 1 - TBR counts to 0 */
  2023. #define CLLD_2        (2*0x0200u)  /* Compare latch load sourec : 2 - up/down */
  2024. #define CLLD_3        (3*0x0200u)  /* Compare latch load sourec : 3 - TBR counts to TBCTL0 */
  2025.  
  2026.  
  2027. /*-------------------------------------------------------------------------
  2028.  *   Basic Clock Module
  2029.  *-------------------------------------------------------------------------*/
  2030.  
  2031.  
  2032. __no_init volatile union
  2033. {
  2034.   unsigned char DCOCTL;  /* DCO Clock Frequency Control */
  2035.  
  2036.   struct
  2037.   {
  2038.     unsigned char MOD0           : 1;  /* Modulation Bit 0 */
  2039.     unsigned char MOD1           : 1;  /* Modulation Bit 1 */
  2040.     unsigned char MOD2           : 1;  /* Modulation Bit 2 */
  2041.     unsigned char MOD3           : 1;  /* Modulation Bit 3 */
  2042.     unsigned char MOD4           : 1;  /* Modulation Bit 4 */
  2043.     unsigned char DCO0           : 1;  /* DCO Select Bit 0 */
  2044.     unsigned char DCO1           : 1;  /* DCO Select Bit 1 */
  2045.     unsigned char DCO2           : 1;  /* DCO Select Bit 2 */
  2046.   } DCOCTL_bit;  
  2047. } @ 0x0056;
  2048.  
  2049.  
  2050. enum {
  2051.   MOD0                = 0x0001,
  2052.   MOD1                = 0x0002,
  2053.   MOD2                = 0x0004,
  2054.   MOD3                = 0x0008,
  2055.   MOD4                = 0x0010,
  2056.   DCO0                = 0x0020,
  2057.   DCO1                = 0x0040,
  2058.   DCO2                = 0x0080,
  2059. };
  2060.  
  2061.  
  2062. __no_init volatile union
  2063. {
  2064.   unsigned char BCSCTL1;  /* Basic Clock System Control 1 */
  2065.  
  2066.   struct
  2067.   {
  2068.     unsigned char RSEL0          : 1;  /* Resistor Select Bit 0 */
  2069.     unsigned char RSEL1          : 1;  /* Resistor Select Bit 1 */
  2070.     unsigned char RSEL2          : 1;  /* Resistor Select Bit 2 */
  2071.     unsigned char XT5V           : 1;  /* XT5V should always be reset */
  2072.     unsigned char DIVA0          : 1;  /* ACLK Divider 0 */
  2073.     unsigned char DIVA1          : 1;  /* ACLK Divider 1 */
  2074.     unsigned char XTS            : 1;  /* LFXTCLK 0:Low Freq. / 1: High Freq. */
  2075.     unsigned char XT2OFF         : 1;  /* Enable XT2CLK */
  2076.   } BCSCTL1_bit;  
  2077. } @ 0x0057;
  2078.  
  2079.  
  2080. enum {
  2081.   RSEL0               = 0x0001,
  2082.   RSEL1               = 0x0002,
  2083.   RSEL2               = 0x0004,
  2084.   XT5V                = 0x0008,
  2085.   DIVA0               = 0x0010,
  2086.   DIVA1               = 0x0020,
  2087.   XTS                 = 0x0040,
  2088.   XT2OFF              = 0x0080,
  2089. };
  2090.  
  2091.  
  2092. __no_init volatile union
  2093. {
  2094.   unsigned char BCSCTL2;  /* Basic Clock System Control 2 */
  2095.  
  2096.   struct
  2097.   {
  2098.     unsigned char DCOR           : 1;  /* Enable External Resistor : 1 */
  2099.     unsigned char DIVS0          : 1;  /* SMCLK Divider 0 */
  2100.     unsigned char DIVS1          : 1;  /* SMCLK Divider 1 */
  2101.     unsigned char SELS           : 1;  /* SMCLK Source Select 0:DCOCLK / 1:XT2CLK/LFXTCLK */
  2102.     unsigned char DIVM0          : 1;  /* CLK Divider 0 */
  2103.     unsigned char DIVM1          : 1;  /* CLK Divider 1 */
  2104.     unsigned char SELM0          : 1;  /* MCLK Source Select 0 */
  2105.     unsigned char SELM1          : 1;  /* MCLK Source Select 1 */
  2106.   } BCSCTL2_bit;  
  2107. } @ 0x0058;
  2108.  
  2109.  
  2110. enum {
  2111.   DCOR                = 0x0001,
  2112.   DIVS0               = 0x0002,
  2113.   DIVS1               = 0x0004,
  2114.   SELS                = 0x0008,
  2115.   DIVM0               = 0x0010,
  2116.   DIVM1               = 0x0020,
  2117.   SELM0               = 0x0040,
  2118.   SELM1               = 0x0080,
  2119. };
  2120.  
  2121.  
  2122. #define DIVA_0           (0x00)   /* ACLK Divider 0: /1 */
  2123. #define DIVA_1           (0x10)   /* ACLK Divider 1: /2 */
  2124. #define DIVA_2           (0x20)   /* ACLK Divider 2: /4 */
  2125. #define DIVA_3           (0x30)   /* ACLK Divider 3: /8 */
  2126.  
  2127. #define DIVS_0           (0x00)   /* SMCLK Divider 0: /1 */
  2128. #define DIVS_1           (0x02)   /* SMCLK Divider 1: /2 */
  2129. #define DIVS_2           (0x04)   /* SMCLK Divider 2: /4 */
  2130. #define DIVS_3           (0x06)   /* SMCLK Divider 3: /8 */
  2131.  
  2132. #define DIVM_0           (0x00)   /* MCLK Divider 0: /1 */
  2133. #define DIVM_1           (0x10)   /* MCLK Divider 1: /2 */
  2134. #define DIVM_2           (0x20)   /* MCLK Divider 2: /4 */
  2135. #define DIVM_3           (0x30)   /* MCLK Divider 3: /8 */
  2136.  
  2137. #define SELM_0           (0x00)   /* MCLK Source Select 0: DCOCLK */
  2138. #define SELM_1           (0x40)   /* MCLK Source Select 1: DCOCLK */
  2139. #define SELM_2           (0x80)   /* MCLK Source Select 2: XT2CLK/LFXTCLK */
  2140. #define SELM_3           (0xC0)   /* MCLK Source Select 3: LFXTCLK */
  2141.  
  2142.  
  2143. /*-------------------------------------------------------------------------
  2144.  *   Comparator A
  2145.  *-------------------------------------------------------------------------*/
  2146.  
  2147.  
  2148. __no_init volatile union
  2149. {
  2150.   unsigned char CACTL1;  /* Comparator A Control 1 */
  2151.  
  2152.   struct
  2153.   {
  2154.     unsigned char CAIFG          : 1;  /* Comp. A Interrupt Flag */
  2155.     unsigned char CAIE           : 1;  /* Comp. A Interrupt Enable */
  2156.     unsigned char CAIES          : 1;  /* Comp. A Int. Edge Select: 0:rising / 1:falling */
  2157.     unsigned char CAON           : 1;  /* Comp. A enable */
  2158.     unsigned char CAREF0         : 1;  /* Comp. A Internal Reference Select 0 */
  2159.     unsigned char CAREF1         : 1;  /* Comp. A Internal Reference Select 1 */
  2160.     unsigned char CARSEL         : 1;  /* Comp. A Internal Reference Enable */
  2161.     unsigned char CAEX           : 1;  /* Comp. A Exchange Inputs */
  2162.   } CACTL1_bit;  
  2163. } @ 0x0059;
  2164.  
  2165.  
  2166. enum {
  2167.   CAIFG               = 0x0001,
  2168.   CAIE                = 0x0002,
  2169.   CAIES               = 0x0004,
  2170.   CAON                = 0x0008,
  2171.   CAREF0              = 0x0010,
  2172.   CAREF1              = 0x0020,
  2173.   CARSEL              = 0x0040,
  2174.   CAEX                = 0x0080,
  2175. };
  2176.  
  2177.  
  2178. __no_init volatile union
  2179. {
  2180.   unsigned char CACTL2;  /* Comparator A Control 2 */
  2181.  
  2182.   struct
  2183.   {
  2184.     unsigned char CAOUT          : 1;  /* Comp. A Output */
  2185.     unsigned char CAF            : 1;  /* Comp. A Enable Output Filter */
  2186.     unsigned char P2CA0          : 1;  /* Comp. A Connect External Signal to CA0 : 1 */
  2187.     unsigned char P2CA1          : 1;  /* Comp. A Connect External Signal to CA1 : 1 */
  2188.     unsigned char CACTL24        : 1;
  2189.     unsigned char CACTL25        : 1;
  2190.     unsigned char CACTL26        : 1;
  2191.     unsigned char CACTL27        : 1;
  2192.   } CACTL2_bit;  
  2193. } @ 0x005A;
  2194.  
  2195.  
  2196. enum {
  2197.   CAOUT               = 0x0001,
  2198.   CAF                 = 0x0002,
  2199.   P2CA0               = 0x0004,
  2200.   P2CA1               = 0x0008,
  2201.   CACTL24             = 0x0010,
  2202.   CACTL25             = 0x0020,
  2203.   CACTL26             = 0x0040,
  2204.   CACTL27             = 0x0080,
  2205. };
  2206.  
  2207.  
  2208. __no_init volatile union
  2209. {
  2210.   unsigned char CAPD;  /* Comparator A Port Disable */
  2211.  
  2212.   struct
  2213.   {
  2214.     unsigned char CAPD0          : 1;  /* Comp. A Disable Input Buffer of Port Register .0 */
  2215.     unsigned char CAPD1          : 1;  /* Comp. A Disable Input Buffer of Port Register .1 */
  2216.     unsigned char CAPD2          : 1;  /* Comp. A Disable Input Buffer of Port Register .2 */
  2217.     unsigned char CAPD3          : 1;  /* Comp. A Disable Input Buffer of Port Register .3 */
  2218.     unsigned char CAPD4          : 1;  /* Comp. A Disable Input Buffer of Port Register .4 */
  2219.     unsigned char CAPD5          : 1;  /* Comp. A Disable Input Buffer of Port Register .5 */
  2220.     unsigned char CAPD6          : 1;  /* Comp. A Disable Input Buffer of Port Register .6 */
  2221.     unsigned char CAPD7          : 1;  /* Comp. A Disable Input Buffer of Port Register .7 */
  2222.   } CAPD_bit;  
  2223. } @ 0x005B;
  2224.  
  2225.  
  2226. enum {
  2227.   CAPD0               = 0x0001,
  2228.   CAPD1               = 0x0002,
  2229.   CAPD2               = 0x0004,
  2230.   CAPD3               = 0x0008,
  2231.   CAPD4               = 0x0010,
  2232.   CAPD5               = 0x0020,
  2233.   CAPD6               = 0x0040,
  2234.   CAPD7               = 0x0080,
  2235. };
  2236.  
  2237.  
  2238. #define CAREF_0          (0x00)    /* Comp. A Int. Ref. Select 0 : Off */
  2239. #define CAREF_1          (0x10)    /* Comp. A Int. Ref. Select 1 : 0.25*Vcc */
  2240. #define CAREF_2          (0x20)    /* Comp. A Int. Ref. Select 2 : 0.5*Vcc */
  2241. #define CAREF_3          (0x30)    /* Comp. A Int. Ref. Select 3 : Vt*/
  2242.  
  2243.  
  2244. /*-------------------------------------------------------------------------
  2245.  *   ADC12
  2246.  *-------------------------------------------------------------------------*/
  2247.  
  2248.  
  2249. __no_init volatile union
  2250. {
  2251.   unsigned short ADC12CTL0;  /* ADC12 Control 0 */
  2252.  
  2253.   struct
  2254.   {
  2255.     unsigned short ADC12SC       : 1;  /* ADC12 Start Conversion */
  2256.     unsigned short ENC           : 1;  /* ADC12 Enable Conversion */
  2257.     unsigned short ADC12TOVIE    : 1;  /* ADC12 Timer Overflow interrupt enable */
  2258.     unsigned short ADC12OVIE     : 1;  /* ADC12 Overflow interrupt enable */
  2259.     unsigned short ADC12ON       : 1;  /* ADC12 On/enable */
  2260.     unsigned short REFON         : 1;  /* ADC12 Reference on */
  2261.     unsigned short REF2_5V       : 1;  /* ADC12 Ref 0:1.5V / 1:2.5V */
  2262.     unsigned short MSC           : 1;  /* ADC12 Multiple SampleConversion */
  2263.     unsigned short SHT0          : 4;  /* ADC12 Sample Hold 0 */
  2264.     unsigned short SHT1          : 4;  /* ADC12 Sample Hold 1 */
  2265.   } ADC12CTL0_bit;  
  2266. } @ 0x01A0;
  2267.  
  2268.  
  2269. enum {
  2270.   ADC12SC             = 0x0001,
  2271.   ENC                 = 0x0002,
  2272.   ADC12TOVIE          = 0x0004,
  2273.   ADC12OVIE           = 0x0008,
  2274.   ADC12ON             = 0x0010,
  2275.   REFON               = 0x0020,
  2276.   REF2_5V             = 0x0040,
  2277.   MSC                 = 0x0080,
  2278.   SHT0                = 0x0800,
  2279.   SHT1                = 0x8000,
  2280. };
  2281.  
  2282.  
  2283. __no_init volatile union
  2284. {
  2285.   unsigned short ADC12CTL1;  /* ADC12 Control 1 */
  2286.  
  2287.   struct
  2288.   {
  2289.     unsigned short ADC12BUSY     : 1;  /* ADC12 Busy */
  2290.     unsigned short CONSEQ        : 2;  /* ADC12 Conversion Sequence Select */
  2291.     unsigned short ADC12SSEL     : 2;  /* ADC12 Clock Source Select */
  2292.     unsigned short ADC12DIV      : 3;  /* ADC12 Clock Divider Select */
  2293.     unsigned short ISSH          : 1;  /* ADC12 Invert Sample Hold Signal */
  2294.     unsigned short SHP           : 1;  /* ADC12 Sample/Hold Pulse Mode */
  2295.     unsigned short SHS           : 2;  /* ADC12 Sample/Hold Source */
  2296.     unsigned short CSTARTADD     : 4;  /* ADC12 Conversion Start Address */
  2297.   } ADC12CTL1_bit;  
  2298. } @ 0x01A2;
  2299.  
  2300.  
  2301. enum {
  2302.   ADC12BUSY           = 0x0001,
  2303.   CONSEQ              = 0x0004,
  2304.   ADC12SSEL           = 0x0010,
  2305.   ADC12DIV            = 0x0080,
  2306.   ISSH                = 0x0100,
  2307.   SHP                 = 0x0200,
  2308.   SHS                 = 0x0800,
  2309.   CSTARTADD           = 0x8000,
  2310. };
  2311.  
  2312.  
  2313.  /* ADC12 Interrupt Flag */
  2314. __no_init volatile unsigned short ADC12IFG @ 0x01A4;  
  2315.  
  2316.  
  2317.  /* ADC12 Interrupt Enable */
  2318. __no_init volatile unsigned short ADC12IE @ 0x01A6;  
  2319.  
  2320.  
  2321.  /* ADC12 Interrupt Vector Word */
  2322. __no_init volatile unsigned short ADC12IV @ 0x01A8;  
  2323.  
  2324.  
  2325.  /* ADC12 Conversion Memory 0 */
  2326. __no_init volatile unsigned short ADC12MEM0 @ 0x0140;  
  2327.  
  2328.  
  2329.  /* ADC12 Conversion Memory 1 */
  2330. __no_init volatile unsigned short ADC12MEM1 @ 0x0142;  
  2331.  
  2332.  
  2333.  /* ADC12 Conversion Memory 2 */
  2334. __no_init volatile unsigned short ADC12MEM2 @ 0x0144;  
  2335.  
  2336.  
  2337.  /* ADC12 Conversion Memory 3 */
  2338. __no_init volatile unsigned short ADC12MEM3 @ 0x0146;  
  2339.  
  2340.  
  2341.  /* ADC12 Conversion Memory 4 */
  2342. __no_init volatile unsigned short ADC12MEM4 @ 0x0148;  
  2343.  
  2344.  
  2345.  /* ADC12 Conversion Memory 5 */
  2346. __no_init volatile unsigned short ADC12MEM5 @ 0x014A;  
  2347.  
  2348.  
  2349.  /* ADC12 Conversion Memory 6 */
  2350. __no_init volatile unsigned short ADC12MEM6 @ 0x014C;  
  2351.  
  2352.  
  2353.  /* ADC12 Conversion Memory 7 */
  2354. __no_init volatile unsigned short ADC12MEM7 @ 0x014E;  
  2355.  
  2356.  
  2357.  /* ADC12 Conversion Memory 8 */
  2358. __no_init volatile unsigned short ADC12MEM8 @ 0x0150;  
  2359.  
  2360.  
  2361.  /* ADC12 Conversion Memory 9 */
  2362. __no_init volatile unsigned short ADC12MEM9 @ 0x0152;  
  2363.  
  2364.  
  2365.  /* ADC12 Conversion Memory 10 */
  2366. __no_init volatile unsigned short ADC12MEM10 @ 0x0154;  
  2367.  
  2368.  
  2369.  /* ADC12 Conversion Memory 11 */
  2370. __no_init volatile unsigned short ADC12MEM11 @ 0x0156;  
  2371.  
  2372.  
  2373.  /* ADC12 Conversion Memory 12 */
  2374. __no_init volatile unsigned short ADC12MEM12 @ 0x0158;  
  2375.  
  2376.  
  2377.  /* ADC12 Conversion Memory 13 */
  2378. __no_init volatile unsigned short ADC12MEM13 @ 0x015A;  
  2379.  
  2380.  
  2381.  /* ADC12 Conversion Memory 14 */
  2382. __no_init volatile unsigned short ADC12MEM14 @ 0x015C;  
  2383.  
  2384.  
  2385.  /* ADC12 Conversion Memory 15 */
  2386. __no_init volatile unsigned short ADC12MEM15 @ 0x015E;  
  2387.  
  2388.  
  2389. __no_init volatile union
  2390. {
  2391.   unsigned char ADC12MCTL0;  /* ADC12 Memory Control 0 */
  2392.  
  2393.   struct
  2394.   {
  2395.     unsigned char INCH           : 4;
  2396.     unsigned char SREF           : 3;
  2397.     unsigned char EOS            : 1;
  2398.   } ADC12MCTL0_bit;  
  2399. } @ 0x0080;
  2400.  
  2401.  
  2402. enum {
  2403.   INCH                = 0x0008,
  2404.   SREF                = 0x0040,
  2405.   EOS                 = 0x0080,
  2406. };
  2407.  
  2408.  
  2409. __no_init volatile union
  2410. {
  2411.   unsigned char ADC12MCTL1;  /* ADC12 Memory Control 1 */
  2412.  
  2413.   struct
  2414.   {
  2415.     unsigned char INCH           : 4;
  2416.     unsigned char SREF           : 3;
  2417.     unsigned char EOS            : 1;
  2418.   } ADC12MCTL1_bit;  
  2419. } @ 0x0081;
  2420.  
  2421.  
  2422.  
  2423.  
  2424. __no_init volatile union
  2425. {
  2426.   unsigned char ADC12MCTL2;  /* ADC12 Memory Control 2 */
  2427.  
  2428.   struct
  2429.   {
  2430.     unsigned char INCH           : 4;
  2431.     unsigned char SREF           : 3;
  2432.     unsigned char EOS            : 1;
  2433.   } ADC12MCTL2_bit;  
  2434. } @ 0x0082;
  2435.  
  2436.  
  2437.  
  2438.  
  2439. __no_init volatile union
  2440. {
  2441.   unsigned char ADC12MCTL3;  /* ADC12 Memory Control 3 */
  2442.  
  2443.   struct
  2444.   {
  2445.     unsigned char INCH           : 4;
  2446.     unsigned char SREF           : 3;
  2447.     unsigned char EOS            : 1;
  2448.   } ADC12MCTL3_bit;  
  2449. } @ 0x0083;
  2450.  
  2451.  
  2452.  
  2453.  
  2454. __no_init volatile union
  2455. {
  2456.   unsigned char ADC12MCTL4;  /* ADC12 Memory Control 4 */
  2457.  
  2458.   struct
  2459.   {
  2460.     unsigned char INCH           : 4;
  2461.     unsigned char SREF           : 3;
  2462.     unsigned char EOS            : 1;
  2463.   } ADC12MCTL4_bit;  
  2464. } @ 0x0084;
  2465.  
  2466.  
  2467.  
  2468.  
  2469. __no_init volatile union
  2470. {
  2471.   unsigned char ADC12MCTL5;  /* ADC12 Memory Control 5 */
  2472.  
  2473.   struct
  2474.   {
  2475.     unsigned char INCH           : 4;
  2476.     unsigned char SREF           : 3;
  2477.     unsigned char EOS            : 1;
  2478.   } ADC12MCTL5_bit;  
  2479. } @ 0x0085;
  2480.  
  2481.  
  2482.  
  2483.  
  2484. __no_init volatile union
  2485. {
  2486.   unsigned char ADC12MCTL6;  /* ADC12 Memory Control 6 */
  2487.  
  2488.   struct
  2489.   {
  2490.     unsigned char INCH           : 4;
  2491.     unsigned char SREF           : 3;
  2492.     unsigned char EOS            : 1;
  2493.   } ADC12MCTL6_bit;  
  2494. } @ 0x0086;
  2495.  
  2496.  
  2497.  
  2498.  
  2499. __no_init volatile union
  2500. {
  2501.   unsigned char ADC12MCTL7;  /* ADC12 Memory Control 7 */
  2502.  
  2503.   struct
  2504.   {
  2505.     unsigned char INCH           : 4;
  2506.     unsigned char SREF           : 3;
  2507.     unsigned char EOS            : 1;
  2508.   } ADC12MCTL7_bit;  
  2509. } @ 0x0087;
  2510.  
  2511.  
  2512.  
  2513.  
  2514. __no_init volatile union
  2515. {
  2516.   unsigned char ADC12MCTL8;  /* ADC12 Memory Control 8 */
  2517.  
  2518.   struct
  2519.   {
  2520.     unsigned char INCH           : 4;
  2521.     unsigned char SREF           : 3;
  2522.     unsigned char EOS            : 1;
  2523.   } ADC12MCTL8_bit;  
  2524. } @ 0x0088;
  2525.  
  2526.  
  2527.  
  2528.  
  2529. __no_init volatile union
  2530. {
  2531.   unsigned char ADC12MCTL9;  /* ADC12 Memory Control 9 */
  2532.  
  2533.   struct
  2534.   {
  2535.     unsigned char INCH           : 4;
  2536.     unsigned char SREF           : 3;
  2537.     unsigned char EOS            : 1;
  2538.   } ADC12MCTL9_bit;  
  2539. } @ 0x0089;
  2540.  
  2541.  
  2542.  
  2543.  
  2544. __no_init volatile union
  2545. {
  2546.   unsigned char ADC12MCTL10;  /* ADC12 Memory Control 10 */
  2547.  
  2548.   struct
  2549.   {
  2550.     unsigned char INCH           : 4;
  2551.     unsigned char SREF           : 3;
  2552.     unsigned char EOS            : 1;
  2553.   } ADC12MCTL10_bit;  
  2554. } @ 0x008A;
  2555.  
  2556.  
  2557.  
  2558.  
  2559. __no_init volatile union
  2560. {
  2561.   unsigned char ADC12MCTL11;  /* ADC12 Memory Control 11 */
  2562.  
  2563.   struct
  2564.   {
  2565.     unsigned char INCH           : 4;
  2566.     unsigned char SREF           : 3;
  2567.     unsigned char EOS            : 1;
  2568.   } ADC12MCTL11_bit;  
  2569. } @ 0x008B;
  2570.  
  2571.  
  2572.  
  2573.  
  2574. __no_init volatile union
  2575. {
  2576.   unsigned char ADC12MCTL12;  /* ADC12 Memory Control 12 */
  2577.  
  2578.   struct
  2579.   {
  2580.     unsigned char INCH           : 4;
  2581.     unsigned char SREF           : 3;
  2582.     unsigned char EOS            : 1;
  2583.   } ADC12MCTL12_bit;  
  2584. } @ 0x008C;
  2585.  
  2586.  
  2587.  
  2588.  
  2589. __no_init volatile union
  2590. {
  2591.   unsigned char ADC12MCTL13;  /* ADC12 Memory Control 13 */
  2592.  
  2593.   struct
  2594.   {
  2595.     unsigned char INCH           : 4;
  2596.     unsigned char SREF           : 3;
  2597.     unsigned char EOS            : 1;
  2598.   } ADC12MCTL13_bit;  
  2599. } @ 0x008D;
  2600.  
  2601.  
  2602.  
  2603.  
  2604. __no_init volatile union
  2605. {
  2606.   unsigned char ADC12MCTL14;  /* ADC12 Memory Control 14 */
  2607.  
  2608.   struct
  2609.   {
  2610.     unsigned char INCH           : 4;
  2611.     unsigned char SREF           : 3;
  2612.     unsigned char EOS            : 1;
  2613.   } ADC12MCTL14_bit;  
  2614. } @ 0x008E;
  2615.  
  2616.  
  2617.  
  2618.  
  2619. __no_init volatile union
  2620. {
  2621.   unsigned char ADC12MCTL15;  /* ADC12 Memory Control 15 */
  2622.  
  2623.   struct
  2624.   {
  2625.     unsigned char INCH           : 4;
  2626.     unsigned char SREF           : 3;
  2627.     unsigned char EOS            : 1;
  2628.   } ADC12MCTL15_bit;  
  2629. } @ 0x008F;
  2630.  
  2631.  
  2632.  
  2633.  
  2634. #define SHT0_0           (0*0x100u)
  2635. #define SHT0_1           (1*0x100u)
  2636. #define SHT0_2           (2*0x100u)
  2637. #define SHT0_3           (3*0x100u)
  2638. #define SHT0_4           (4*0x100u)
  2639. #define SHT0_5           (5*0x100u)
  2640. #define SHT0_6           (6*0x100u)
  2641. #define SHT0_7           (7*0x100u)
  2642. #define SHT0_8           (8*0x100u)
  2643. #define SHT0_9           (9*0x100u)
  2644. #define SHT0_10         (10*0x100u)
  2645. #define SHT0_11         (11*0x100u)
  2646. #define SHT0_12         (12*0x100u)
  2647. #define SHT0_13         (13*0x100u)
  2648. #define SHT0_14         (14*0x100u)
  2649. #define SHT0_15         (15*0x100u)
  2650.  
  2651. #define SHT1_0           (0*0x1000u)
  2652. #define SHT1_1           (1*0x1000u)
  2653. #define SHT1_2           (2*0x1000u)
  2654. #define SHT1_3           (3*0x1000u)
  2655. #define SHT1_4           (4*0x1000u)
  2656. #define SHT1_5           (5*0x1000u)
  2657. #define SHT1_6           (6*0x1000u)
  2658. #define SHT1_7           (7*0x1000u)
  2659. #define SHT1_8           (8*0x1000u)
  2660. #define SHT1_9           (9*0x1000u)
  2661. #define SHT1_10         (10*0x1000u)
  2662. #define SHT1_11         (11*0x1000u)
  2663. #define SHT1_12         (12*0x1000u)
  2664. #define SHT1_13         (13*0x1000u)
  2665. #define SHT1_14         (14*0x1000u)
  2666. #define SHT1_15         (15*0x1000u)
  2667.  
  2668. #define CONSEQ_0             (0*2u)
  2669. #define CONSEQ_1             (1*2u)
  2670. #define CONSEQ_2             (2*2u)
  2671. #define CONSEQ_3             (3*2u)
  2672. #define ADC12SSEL_0          (0*8u)
  2673. #define ADC12SSEL_1          (1*8u)
  2674. #define ADC12SSEL_2          (2*8u)
  2675. #define ADC12SSEL_3          (3*8u)
  2676. #define ADC12DIV_0           (0*0x20u)
  2677. #define ADC12DIV_1           (1*0x20u)
  2678. #define ADC12DIV_2           (2*0x20u)
  2679. #define ADC12DIV_3           (3*0x20u)
  2680. #define ADC12DIV_4           (4*0x20u)
  2681. #define ADC12DIV_5           (5*0x20u)
  2682. #define ADC12DIV_6           (6*0x20u)
  2683. #define ADC12DIV_7           (7*0x20u)
  2684. #define SHS_0                (0*0x400u)
  2685. #define SHS_1                (1*0x400u)
  2686. #define SHS_2                (2*0x400u)
  2687. #define SHS_3                (3*0x400u)
  2688. #define CSTARTADD_0          (0*0x1000u)
  2689. #define CSTARTADD_1          (1*0x1000u)
  2690. #define CSTARTADD_2          (2*0x1000u)
  2691. #define CSTARTADD_3          (3*0x1000u)
  2692. #define CSTARTADD_4          (4*0x1000u)
  2693. #define CSTARTADD_5          (5*0x1000u)
  2694. #define CSTARTADD_6          (6*0x1000u)
  2695. #define CSTARTADD_7          (7*0x1000u)
  2696. #define CSTARTADD_8          (8*0x1000u)
  2697. #define CSTARTADD_9          (9*0x1000u)
  2698. #define CSTARTADD_10        (10*0x1000u)
  2699. #define CSTARTADD_11        (11*0x1000u)
  2700. #define CSTARTADD_12        (12*0x1000u)
  2701. #define CSTARTADD_13        (13*0x1000u)
  2702. #define CSTARTADD_14        (14*0x1000u)
  2703. #define CSTARTADD_15        (15*0x1000u)
  2704.  
  2705. #define INCH_0               (0)
  2706. #define INCH_1               (1)
  2707. #define INCH_2               (2)
  2708. #define INCH_3               (3)
  2709. #define INCH_4               (4)
  2710. #define INCH_5               (5)
  2711. #define INCH_6               (6)
  2712. #define INCH_7               (7)
  2713. #define INCH_8               (8)
  2714. #define INCH_9               (9)
  2715. #define INCH_10             (10)
  2716. #define INCH_11             (11)
  2717. #define INCH_12             (12)
  2718. #define INCH_13             (13)
  2719. #define INCH_14             (14)
  2720. #define INCH_15             (15)
  2721.  
  2722. #define SREF_0               (0*0x10u)
  2723. #define SREF_1               (1*0x10u)
  2724. #define SREF_2               (2*0x10u)
  2725. #define SREF_3               (3*0x10u)
  2726. #define SREF_4               (4*0x10u)
  2727. #define SREF_5               (5*0x10u)
  2728. #define SREF_6               (6*0x10u)
  2729. #define SREF_7               (7*0x10u)
  2730.  
  2731.  
  2732. /*-------------------------------------------------------------------------
  2733.  *   Flash Memory
  2734.  *-------------------------------------------------------------------------*/
  2735.  
  2736.  
  2737. __no_init volatile union
  2738. {
  2739.   unsigned short FCTL1;  /* FLASH Control 1 */
  2740.  
  2741.   struct
  2742.   {
  2743.     unsigned short               : 1;
  2744.     unsigned short ERASE         : 1;  /* Enable bit for Flash segment erase */
  2745.     unsigned short MERAS         : 1;  /* Enable bit for Flash mass erase */
  2746.     unsigned short               : 3;
  2747.     unsigned short WRT           : 1;  /* Enable bit for Flash write */
  2748.     unsigned short BLKWRT        : 1;  /* Enable bit for Flash segment write */
  2749.     unsigned short KEY           : 8;  /* old definition */ /* Enable bit for Flash segment write */
  2750.   } FCTL1_bit;  
  2751. } @ 0x0128;
  2752.  
  2753.  
  2754. enum {
  2755.   ERASE               = 0x0002,
  2756.   MERAS               = 0x0004,
  2757.   WRT                 = 0x0040,
  2758.   BLKWRT              = 0x0080,
  2759. };
  2760.  
  2761.  
  2762. __no_init volatile union
  2763. {
  2764.   unsigned short FCTL2;  /* FLASH Control 2 */
  2765.  
  2766.   struct
  2767.   {
  2768.     unsigned short FN0           : 1;  /* Devide Flash clock by 1 to 64 using FN0 to FN5 according to: */
  2769.     unsigned short FN1           : 1;  /* 32*FN5 + 16*FN4 + 8*FN3 + 4*FN2 + 2*FN1 + FN0 + 1 */
  2770.     unsigned short FN2           : 1;
  2771.     unsigned short FN3           : 1;
  2772.     unsigned short FN4           : 1;
  2773.     unsigned short FN5           : 1;
  2774.     unsigned short SSEL0         : 1;  /* Flash clock select 0 */
  2775.     unsigned short SSEL1         : 1;  /* Flash clock select 1 */
  2776.     unsigned short KEY           : 8;
  2777.   } FCTL2_bit;  
  2778. } @ 0x012A;
  2779.  
  2780.  
  2781. enum {
  2782.   FN0                 = 0x0001,
  2783.   FN1                 = 0x0002,
  2784.   FN2                 = 0x0004,
  2785.   FN3                 = 0x0008,
  2786.   FN4                 = 0x0010,
  2787.   FN5                 = 0x0020,
  2788. };
  2789.  
  2790.  
  2791. __no_init volatile union
  2792. {
  2793.   unsigned short FCTL3;  /* FLASH Control 3 */
  2794.  
  2795.   struct
  2796.   {
  2797.     unsigned short BUSY          : 1;  /* Flash busy: 1 */
  2798.     unsigned short KEYV          : 1;  /* Flash Key violation flag */
  2799.     unsigned short ACCVIFG       : 1;  /* Flash Access violation flag */
  2800.     unsigned short WAIT          : 1;  /* Wait flag for segment write */
  2801.     unsigned short LOCK          : 1;  /* Lock bit: 1 - Flash is locked (read only) */
  2802.     unsigned short EMEX          : 1;  /* Flash Emergency Exit */
  2803.     unsigned short KEY           : 8;
  2804.     unsigned short               : 2;
  2805.   } FCTL3_bit;  
  2806. } @ 0x012C;
  2807.  
  2808.  
  2809. enum {
  2810.   BUSY                = 0x0001,
  2811.   KEYV                = 0x0002,
  2812.   ACCVIFG             = 0x0004,
  2813.   WAIT                = 0x0008,
  2814.   LOCK                = 0x0010,
  2815.   EMEX                = 0x0020,
  2816.   KEY                 = 0x2000,
  2817. };
  2818.  
  2819.  
  2820. #define FRKEY            (0x9600)    /* Flash key returned by read */
  2821. #define FWKEY            (0xA500)    /* Flash key for write */
  2822. #define FXKEY            (0x3300)    /* for use with XOR instruction */
  2823.  
  2824. #define FSSEL_0          (0x0000)    /* Flash clock select: 0 - ACLK */
  2825. #define FSSEL_1          (0x0040)    /* Flash clock select: 1 - MCLK */
  2826. #define FSSEL_2          (0x0080)    /* Flash clock select: 2 - SMCLK */
  2827. #define FSSEL_3          (0x00C0)    /* Flash clock select: 3 - SMCLK */
  2828.  
  2829.  
  2830.  
  2831. #pragma language=default
  2832. #endif  /* __IAR_SYSTEMS_ICC__  */
  2833.  
  2834.  
  2835. /************************************************************
  2836. * Timer A interrupt vector value
  2837. ************************************************************/
  2838.  
  2839. #define TAIV_CCIFG1         (2)       /* Capture/compare 1 */
  2840. #define TAIV_CCIFG2         (4)       /* Capture/compare 2 */
  2841. #define TAIV_CCIFG3         (6)       /* Capture/compare 3 */
  2842. #define TAIV_CCIFG4         (8)       /* Capture/compare 4 */
  2843. #define TAIV_TAIFG          (10)      /* Timer overflow */
  2844.  
  2845. /************************************************************
  2846. * Interrupt Vectors (offset from 0xFFE0)
  2847. ************************************************************/
  2848.  
  2849. #define PORT2_VECTOR        (1 * 2u)  /* 0xFFE2 Port 2 */
  2850. #define USART1TX_VECTOR     (2 * 2u)  /* 0xFFE4 USART 1 Transmit */
  2851. #define USART1RX_VECTOR     (3 * 2u)  /* 0xFFE6 USART 1 Receive */
  2852. #define PORT1_VECTOR        (4 * 2u)  /* 0xFFE8 Port 1 */
  2853. #define TIMERA1_VECTOR      (5 * 2u)  /* 0xFFEA Timer A CC1-2, TA */
  2854. #define TIMERA0_VECTOR      (6 * 2u)  /* 0xFFEC Timer A CC0 */
  2855. #define ADC_VECTOR          (7 * 2u)  /* 0xFFEE ADC */
  2856. #define USART0TX_VECTOR     (8 * 2u)  /* 0xFFF0 USART 0 Transmit */
  2857. #define USART0RX_VECTOR     (9 * 2u)  /* 0xFFF2 USART 0 Receive */
  2858. #define WDT_VECTOR          (10 * 2u) /* 0xFFF4 Watchdog Timer */
  2859. #define COMPARATORA_VECTOR  (11 * 2u) /* 0xFFF6 Comparator A */
  2860. #define TIMERB1_VECTOR      (12 * 2u) /* 0xFFF8 Timer B CC1-6, TB */
  2861. #define TIMERB0_VECTOR      (13 * 2u) /* 0xFFFA Timer B CC0 */
  2862. #define NMI_VECTOR          (14 * 2u) /* 0xFFFC Non-maskable */
  2863. #define RESET_VECTOR        (15 * 2u) /* 0xFFFE Reset [Highest Priority] */
  2864.  
  2865. #define UART1TX_VECTOR      USART1TX_VECTOR
  2866. #define UART1RX_VECTOR      USART1RX_VECTOR
  2867. #define UART0TX_VECTOR      USART0TX_VECTOR
  2868. #define UART0RX_VECTOR      USART0RX_VECTOR
  2869.  
  2870.  
  2871. #endif /* __IO430xxxx */
Advertisement
Add Comment
Please, Sign In to add comment