Vous êtes sur la page 1sur 13

Definiciones de nombres de registros, bits, modos, y

configuraciones para los diferentes elementos del MSP430F169

● Estas etiquetas están definidas en el fichero "msp430x16x.h".


● En los bits individuales, la definición representa la posición del bit en su correspondiente
registro. La puesta a 1 del bit, individualmente, se realizará con bset, mientras que la puesta a 0
se hará con bclr. Para una programación conjunta de un registro mediante mov, la puesta del bit a
1 se indicará incluyendo el nombre del bit en el sumatorio; la puesta a 0 se indicará incluyendo el
nombre del bit con “~” delante.
● En los bits agrupados, a cada agrupación de bits específica se le asigna un nombre (por ejemplo,
#LPM3 es equivalente a #SCG1+SCG0+CPUOFF...); en este caso es más conveniente utilizar la
instrucción mov teniendo en cuenta que con esta instrucción reconfiguras TODOS los campos
del registro, por lo que habrá que añadir la configuración COMPLETA deseada. Otra posibilidad
es acceder a los bits individuales y modificarlos por separado mediante bis y bic. Si se pone “~”
delante de un nombre de definición, estaremos moviendo el dato complementario; por eso no es
aconsejable usar esta opción.
● A menudo existen nombres altenrnativos; lo más común es que haya dos nombres: NOMBRE y
NOMBRE_.
● Formato de definiciones:
#define ALIAS (equivalencia)
DEFC(ALIAS2, ALIAS1) --> permite usar 2 alias para un registro

BITS ESTÁNDAR (Individuales, aplicables a cualquier registro/pos. de memoria

#define BIT0 (0x0001)


#define BIT1 (0x0002)
#define BIT2 (0x0004)
#define BIT3 (0x0008)
#define BIT4 (0x0010)
#define BIT5 (0x0020)
#define BIT6 (0x0040)
#define BIT7 (0x0080)
#define BIT8 (0x0100)
#define BIT9 (0x0200)
#define BITA (0x0400)
#define BITB (0x0800)
#define BITC (0x1000)
#define BITD (0x2000)
#define BITE (0x4000)
#define BITF (0x8000)

BITS aplicables al Registro de Estado (SR)

#define C (0x0001)
#define Z (0x0002)
#define N (0x0004)
#define V (0x0100)
#define GIE (0x0008)
#define CPUOFF (0x0010)
#define OSCOFF (0x0020)
#define SCG0 (0x0040)
#define SCG1 (0x0080)

Modos de Bajo Consumo (bits 4-7 de SR)

#define LPM0 (CPUOFF)


#define LPM1 (SCG0+CPUOFF)
#define LPM2 (SCG1+CPUOFF)
#define LPM3 (SCG1+SCG0+CPUOFF)
#define LPM4 (SCG1+SCG0+OSCOFF+CPUOFF)

Vectores de interrupción (offset a partir de 0xFFE0)

#define DACDMA_VECTOR (0 * 2u) /* 0xFFE0 DAC/DMA */


#define PORT2_VECTOR (1 * 2u) /* 0xFFE2 Puerto2 */
#define USART1TX_VECTOR (2 * 2u) /* 0xFFE4 Transmisión USART 1 */
#define USART1RX_VECTOR (3 * 2u) /* 0xFFE6 Recepción USART 1 */
#define PORT1_VECTOR (4 * 2u) /* 0xFFE8 Puerto1 */
#define TIMERA1_VECTOR (5 * 2u) /* 0xFFEA Registros CC1-2, TA del TIMERA */
#define TIMERA0_VECTOR (6 * 2u) /* 0xFFEC Registro CC0 del TIMERA */
#define ADC12_VECTOR (7 * 2u) /* 0xFFEE ADC */
#define USART0TX_VECTOR (8 * 2u) /* 0xFFF0 Transmisión USART 0 */
#define USART0RX_VECTOR (9 * 2u) /* 0xFFF2 Recepción USART 0 */
#define WDT_VECTOR (10 * 2u) /* 0xFFF4 Watchdog Timer */
#define COMPARATORA_VECTOR (11 * 2u) /* 0xFFF6 Comparador A */
#define TIMERB1_VECTOR (12 * 2u) /* 0xFFF8 Registros CC1-8, TB del TIMERB */
#define TIMERB0_VECTOR (13 * 2u) /* 0xFFFA Registro CC0 del TIMERB */
#define NMI_VECTOR (14 * 2u) /* 0xFFFC Int. No Enmascarable */
#define RESET_VECTOR ( 15 * 2u) /* 0xFFFE Reset [Prioridad máxima] */

#define UART1TX_VECTOR USART1TX_VECTOR


#define UART1RX_VECTOR USART1RX_VECTOR
#define UART0TX_VECTOR USART0TX_VECTOR
#define UART0RX_VECTOR USART0RX_VECTOR
#define ADC_VECTOR ADC12_VECTOR

REGISTROS DE PERIFÉRICOS

Registros de Función Especial y bits de Control (bits 4-7 de SR)

Registros de Permiso de Interrupción 1 (Interrupt Enable 1)->IE1, IE1_, U0IE


#define IE1_ (0x0000)
DEFC( IE1 , IE1_)
#define U0IE IE1 /* Registro de Permisos de Interrupción de UART0*/

Bits IE1
#define WDTIE (0x01) /* Permiso Interrupción Watchdog */
#define OFIE (0x02) /* Permiso Interrupción Fallo del Oscilador */
#define NMIIE (0x10) /* Permiso Interrupción Interrupción No Enmascarable (NMI) */
#define ACCVIE (0x20) /* Permiso Interrupción Violación de Acceso a FLASH */
#define URXIE0 (0x40) /* Permiso Interrupción Recepción UART0 */
#define UTXIE0 (0x80) /* Permiso Interrupción Transmisión UART0 */

Registros de Flags de Interrupción 1 (Interrupt Flag 1)->IFG1, IFG1_, U0IFG


#define IFG1_ (0x0002)
DEFC( IFG1, IFG1_)
#define U0IFG IFG1 /* Registro de Flags de Interrupción de UART0*/

Bits IFG1
#define WDTIE (0x01) /* Permiso Interrupción Watchdog */
#define OFIE (0x02) /* Permiso Interrupción Fallo del Oscilador */
#define NMIIE (0x10) /* Permiso Interrupción Interrupción No Enmascarable (NMI) */
#define ACCVIE (0x20) /* Permiso Interrupción Violación de Acceso a FLASH */
#define URXIE0 (0x40) /* Permiso Interrupción Recepción UART0 */
#define UTXIE0 (0x80) /* Permiso Interrupción Transmisión UART0 */

#define WDTIFG (0x01) /* Flag Interrupción Watchdog */


#define OFIFG (0x02) /* Flag Interrupción Fallo del Oscilador */
#define NMIIFG (0x10) /* Flag Interrupción No Enmascarable (NMI) */
#define URXIFG0 (0x40) /* Flag Interrupción Recepción UART0 */
#define UTXIFG0 (0x80) /* Flag Interrupción Transmisión UART0 */

Registros de Habilitación de Módulos 1 (Module Enable 1)->ME1, ME1_, U0ME


#define ME1_ (0x0004)
DEFC( ME1 , ME1_)
#define U0ME ME1 /* Registro de habilitación de Módulos UART0 */

Bits ME1
#define URXE0 (0x40) /* Habilitación de Recepción UART0 */
#define UTXE0 (0x80) /* Habilitación de Transmisión UART0 */
#define USPIE0 (0x40) /* Habilitación de SPI USART0 */

Registros de Permiso de Interrupción 2 (Interrupt Enable 2)->IE2, IE2_, U1IE


#define IE2_ (0x0001)
DEFC( IE2 , IE2_)
#define U1IE IE2 /* Registro de Permisos de Interrupción de UART1*/

Bits IE2
#define URXIE1 (0x10) /* Permiso Interrupción Recepción UART1 */
#define UTXIE1 (0x20) /* Permiso Interrupción Transmisión UART1 */
Registros de Flags de Interrupción 2 (Interrupt Flag 2)->IFG2, IFG2_, U1IFG
#define IFG2_ (0x0003) /* Interrupt Flag 2 */
DEFC( IFG2 , IFG2_)
#define U1IFG IFG2 /* Registro de Flags de Interrupción de UART1*/

Bits IFG2
#define URXIFG1 (0x10) /* Flag Interrupción Recepción UART1*/
#define UTXIFG1 (0x20) /* Flag Interrupción Transmisión UART1 */

Registros de Habilitación de Módulos 2 (Module Enable 2)->ME2, ME2_, U1ME


#define ME2_ (0x0005)
DEFC( ME2 , ME2_)
#define U1ME ME2 /* Registro de habilitación de Módulos UART1 */

Bits ME2
#define URXE1 (0x10) /* Habilitación de Recepción UART1 */
#define UTXE1 (0x20) /* Habilitación de Transmisión UART */
#define USPIE1 (0x10) /* Habilitación de SPI USART1 */

Puertos Digitales E/S


#define P1IN _ (0x0020) /* Registro de entrada del Puerto 1 */
READ_ONLY DEFC( P1IN , P1IN_)
#define P1OUT_ (0x0021) /* Registro de salida del Puerto 1 */
DEFC( P1OUT , P1OUT_)
#define P1DIR_ (0x0022) /* Registro de dirección del Puerto 1 */
DEFC( P1DIR, P1DIR_)
#define P1IFG_ (0x0023) /* Registro de flags del Puerto 1 */
DEFC( P1IFG , P1IFG_)
#define P1IES_ (0x0024) /* Registro de flanco de interrupción del Puerto 1 */
DEFC( P1IES , P1IES_)
#define P1IE_ (0x0025) /* Registro de permiso de interrupción del Puerto 1 */
DEFC( P1IE , P1IE_)
#define P1SEL_ (0x0026) /* Registro de selección de función especial del Puerto 1 */
DEFC( P1SEL , P1SEL_)

#define P2IN _ (0x0028) /* Registro de entrada del Puerto 2 */


READ_ONLY DEFC( P2IN , P2IN_)
#define P2OUT_ (0x0029) /* Registro de salida del Puerto 2 */
DEFC( P2OUT , P2OUT_)
#define P2DIR_ (0x002A) /* Registro de dirección del Puerto 2 */
DEFC( P2DIR , P2DIR_)
#define P2IFG_ (0x002B) /* Registro de flags del Puerto 2 */
DEFC( P2IFG , P2IFG_)
#define P2IES_ (0x002C) /* Registro de flanco de interrupción del Puerto 2 */
DEFC( P2IES , P2IES_)
#define P2IE_ (0x002D) /* Registro de permiso de interrupción del Puerto 2 */
DEFC( P2IE , P2IE_)
#define P2SEL_ (0x002E) /* Registro de selección de función especial del Puerto 2 */
DEFC( P2SEL , P2SEL_)

#define P3IN _ (0x0018) /* Registro de entrada del Puerto 3 */


READ_ONLY DEFC( P3IN , P3IN_)
#define P3OUT_ (0x0019) /* Registro de salida del Puerto 3 */
DEFC( P3OUT , P3OUT_)
#define P3DIR_ (0x001A) /* Registro de dirección del Puerto 3 */
DEFC( P3DIR , P3DIR_)
#define P3SEL_ (0x001B) /* Registro de selección de función especial del Puerto 3 */
DEFC( P3SEL , P3SEL_)

#define P4IN _ (0x001C) /* Registro de entrada del Puerto 4 */


READ_ONLY DEFC( P4IN , P4IN_)
#define P4OUT_ (0x001D) /* Registro de salida del Puerto 4 */
DEFC( P4OUT , P4OUT_)
#define P4DIR_ (0x001E) /* Registro de dirección del Puerto 4 */
DEFC( P4DIR , P4DIR_)
#define P4SEL_ (0x001F) /* Registro de selección de función especial del Puerto 4 */
DEFC( P4SEL , P4SEL_)

#define P5IN _ (0x0030) /* Registro de entrada del Puerto 5 */


READ_ONLY DEFC( P5IN , P5IN_)
#define P5OUT_ (0x0031) /* Registro de salida del Puerto 5 */
DEFC( P5OUT , P5OUT_)
#define P5DIR_ (0x0032) /* Registro de dirección del Puerto 5 */
DEFC( P5DIR , P5DIR_)
#define P5SEL_ (0x0033) /* Registro de selección de función especial del Puerto 5 */
DEFC( P5SEL , P5SEL_)

#define P6IN _ (0x0034) /* Registro de entrada del Puerto 6 */


READ_ONLY DEFC( P6IN , P6IN_)
#define P6OUT_ (0x0035) /* Registro de salida del Puerto 6 */
DEFC( P6OUT , P6OUT_)
#define P6DIR_ (0x0036) /* Registro de dirección del Puerto 6 */
DEFC( P6DIR , P6DIR_)
#define P6SEL_ (0x0037) /* Registro de selección de función especial del Puerto 6 */
DEFC( P6SEL , P6SEL_)

Multiplicador Hardware: Registros

#define MPY_ (0x0130) /* Operando 1 para multiplicación sin signo */


DEFW( MPY , MPY_)
#define MPYS_ (0x0132) /* Operando 1 para multiplicación con signo */
DEFW( MPYS , MPYS_)
#define MAC_ (0x0134) /* Operando 1 para multiplicación sin signo acumulativa */
DEFW( MAC , MAC_)
#define MACS_ (0x0136) /* Operando 1 para multiplicación con signo acumulativa */
DEFW( MACS , MACS_)
#define OP2_ (0x0138) /* Operando 2 */
DEFW( OP2 , OP2_)
#define RESLO_ (0x013A) /* Palabra Baja del Resultado*/
DEFW( RESLO , RESLO_)
#define RESHI_ (0x013C) /* Palabra Alta del Resultado*/
DEFW( RESHI , RESHI_)
#define SUMEXT_ (0x013E) /* Extensión de Suma */

Timer A3

#define TAIV_ (0x012E) /* Vector de Interrupción del Temporizador A3 */


READ_ONLY DEFW( TAIV , TAIV_)
#define TACTL_ (0x0160) /* Registro de Control del Temporizador A3 */
DEFW( TACTL , TACTL_)
#define TACCTL0_ (0x0162) /* Registro de Control del Capturador/Comparador 0 */ DEFW(
TACCTL0 , TACCTL0_)
#define TACCTL1_ (0x0164) /* Registro de Control del Capturador/Comparador 1 */
DEFW( TACCTL1 , TACCTL1_)
#define TACCTL2_ (0x0166) /* Registro de Control del Capturador/Comparador 2 */
DEFW( TACCTL2 , TACCTL2_)
#define TAR_ (0x0170) /* Registro de Cuenta del Temporizador A3 */
DEFW( TAR , TAR_)
#define TACCR0_ (0x0172) /* Registro de Captura/Comparación 0 */
DEFW( TACCR0 , TACCR0_)
#define TACCR1_ (0x0174) /* Registro de Captura/Comparación 1 */
DEFW( TACCR1 , TACCR1_)
#define TACCR2_ (0x0176) /* Registro de Captura/Comparación 2 */
DEFW( TACCR2 , TACCR2_)

Bits configuración Temporizador A3

#define TASSEL1 (0x0200) /* Bit 1 de selección de fuente de reloj */


#define TASSEL0 (0x0100) /* Bit 0 de selección de fuente de reloj */
#define ID1 (0x0080) /* Bit 1 de selección de división de frecuencia */
#define ID0 (0x0040) /* Bit 0 de selección de división de frecuencia */
#define MC1 (0x0020) /* Bit 1 de selección de modo de control */
#define MC0 (0x0010) /* Bit 0 de selección de modo de control */
#define TACLR (0x0004) /* Bit de limpieza del temporizador A3 */
#define TAIE (0x0002) /* Permiso de interrupción de paso de cuenta por 0 */
#define TAIFG (0x0001) /* Flag de interrupción de paso de cuenta por 0 */
#define CM1 (0x8000) /* Bit 1 de selección de modo de captura */
#define CM0 (0x4000) /* Bit 0 de selección de modo de captura */
#define CCIS1 (0x2000) /* Bit 1 de selección de entrada de captura */
#define CCIS0 (0x1000) /* Bit 0 de selección de entrada de captura */
#define SCS (0x0800) /* Bit de programación de captura sincronizada */
#define SCCI (0x0400) /* Bit indic. de estado de la señal de captura sincronizada */
#define CAP (0x0100) /* Bit de modo de captura. 1:Captura, 0:Comparación */
#define OUTMOD2 (0x0080) /* Bit 2 del modo de salida */
#define OUTMOD1 (0x0040) /* Bit 1 del modo de salida */
#define OUTMOD0 (0x0020) /* Bit 0 del modo de salida */
#define CCIE (0x0010) /* Permiso de interrupción de Captura/comparación */
#define CCI (0x0008) /* Bit indic. de estado de la señal de captura */
#define OUT (0x0004) /* Señal de salida PWM en el modo de salida 0 */
#define COV (0x0002) /* Flag de indicación overflow en Captura/comparación */
#define CCIFG (0x0001) /* Flag de interrupción por Captura/comparación */

Configuración Temporizador A3

#define MC_0 (0*0x10u) /* Modo de control 0 - Stop */


#define MC_1 (1*0x10u) /* Modo de control 1 – Up hasta CCR0 */
#define MC_2 (2*0x10u) /* Modo de control 2 – Up hasta FFFFh */
#define MC_3 (3*0x10u) /* Modo de control 3 – Up/Down */
#define ID_0 (0*0x40u) /* Divisor frec. reloj escogido por /1 */
#define ID_1 (1*0x40u) /* Divisor frec. reloj escogido por /2 */
#define ID_2 (2*0x40u) /* Divisor frec. reloj escogido por /4 */
#define ID_3 (3*0x40u) /* Divisor frec. reloj escogido por /8 */
#define TASSEL_0 (0*0x100u) /* Selecciona TACLK como fuente de reloj (0) */
#define TASSEL_1 (1*0x100u) /* Selecciona ACLK como fuente de reloj (1) */
#define TASSEL_2 (2*0x100u) /* Selecciona SMCLK como fuente de reloj (2) */
#define TASSEL_3 (3*0x100u) /* Selecciona INCLK como fuente de reloj (3) */
#define OUTMOD_0 (0*0x20u) /* Modo 0 de salida PWM – valor del bit OUT */
#define OUTMOD_1 (1*0x20u) /* Modo 1 de salida PWM – modo set */
#define OUTMOD_2 (2*0x20u) /* Modo 2 de salida PWM – modo toggle/reset */
#define OUTMOD_3 (3*0x20u) /* Modo 3 de salida PWM – modo set/reset */
#define OUTMOD_4 (4*0x20u) /* Modo 4 de salida PWM – modo toggle */
#define OUTMOD_5 (5*0x20u) /* Modo 5 de salida PWM – modo reset */
#define OUTMOD_6 (6*0x20u) /* Modo 6 de salida PWM – modo toggle/set */
#define OUTMOD_7 (7*0x20u) /* Modo 7 de salida PWM – modo set/reset */
#define CCIS_0 (0*0x1000u) /* Señal de captura 0 - CCIxA */
#define CCIS_1 (1*0x1000u) /* Señal de captura 1 - CCIxB */
#define CCIS_2 (2*0x1000u) /* Señal de captura 2 - GND */
#define CCIS_3 (3*0x1000u) /* Señal de captura 3 - Vcc */
#define CM_0 (0*0x4000u) /* Flanco de captura 0 – no captura */
#define CM_1 (1*0x4000u) /* Flanco de captura 1 – flanco de subida */
#define CM_2 (2*0x4000u) /* Flanco de captura 2 – flanco de bajada */
#define CM_3 (3*0x4000u) /* Flanco de captura 3 – ambos flancos */

Convertidor Analógico/Digital de 12 bits ADC12

#define ADC12CTL0_ (0x01A0) /* Registro de Control 0 del ADC12 */


DEFW( ADC12CTL0 , ADC12CTL0_)
#define ADC12CTL1_ (0x01A2) /* Registro de Control 1 del ADC12 */
DEFW( ADC12CTL1, ADC12CTL1_)
#define ADC12IFG_ (0x01A4) /* Registro de flags de interrupción del ADC12 */
DEFW( ADC12IFG , ADC12IFG_)
#define ADC12IE_ (0x01A6) /* Registro de permisos de interrupción del ADC12 */
DEFW( ADC12IE , ADC12IE_)
#define ADC12IV_ (0x01A8) /* Registro de vector de interrupción del ADC12 */
DEFW( ADC12IV , ADC12IV_)

#define ADC12MEM_ (0x0140) /* Registro inic. de memorias de conversión del ADC12 */


#define ADC12MEM (ADC12MEM_)
#define ADC12MEM0_ (0x0140) /* Memoria de conversion 0 del ADC12 */
DEFW( ADC12MEM0 , ADC12MEM0_)
#define ADC12MEM1_ (0x0142) /* Memoria de conversion 1 del ADC12 */
DEFW( ADC12MEM1 , ADC12MEM1_)
#define ADC12MEM2_ (0x0144) /* Memoria de conversion 2 del ADC12 */
DEFW( ADC12MEM2 , ADC12MEM2_)
#define ADC12MEM3_ (0x0146) /* Memoria de conversion 3 del ADC12 */
DEFW( ADC12MEM3 , ADC12MEM3_)
#define ADC12MEM4_ (0x0148) /* Memoria de conversion 4 del ADC12 */
DEFW( ADC12MEM4 , ADC12MEM4_)
#define ADC12MEM5_ (0x014A) /* Memoria de conversion 5 del ADC12 */
DEFW( ADC12MEM5 , ADC12MEM5_)
#define ADC12MEM6_ (0x014C) /* Memoria de conversion 6 del ADC12 */
DEFW( ADC12MEM6 , ADC12MEM6_)
#define ADC12MEM7_ (0x014E) /* Memoria de conversion 7 del ADC12 */
DEFW( ADC12MEM7 , ADC12MEM7_)
#define ADC12MEM8_ (0x0150) /* Memoria de conversion 8 del ADC12 */
DEFW( ADC12MEM8 , ADC12MEM8_)
#define ADC12MEM9_ (0x0152) /* Memoria de conversion 9 del ADC12 */
DEFW( ADC12MEM9 , ADC12MEM9_)
#define ADC12MEM10_ (0x0154) /* Memoria de conversion 10 del ADC12 */
DEFW( ADC12MEM10 , ADC12MEM10_)
#define ADC12MEM11_ (0x0156) /* Memoria de conversion 11 del ADC12 */
DEFW( ADC12MEM11 , ADC12MEM11_)
#define ADC12MEM12_ (0x0158) /* Memoria de conversion 12 del ADC12 */
DEFW( ADC12MEM12 , ADC12MEM12_)
#define ADC12MEM13_ (0x015A) /* Memoria de conversion 13 del ADC12 */
DEFW( ADC12MEM13 , ADC12MEM13_)
#define ADC12MEM14_ (0x015C) /* Memoria de conversion 14 del ADC12 */
DEFW( ADC12MEM14 , ADC12MEM14_)
#define ADC12MEM15_ (0x015E) /* Memoria de conversion 15 del ADC12 */
DEFW( ADC12MEM15 , ADC12MEM15_)

#define ADC12MCTL_ (0x0080) /* Registro inic. de control de memorias del ADC12 */


#define ADC12MCTL (ADC12MCTL_)
#define ADC12MCTL0_ (0x0080) /* Registro de control de la memoria 0 */
DEFC( ADC12MCTL0 , ADC12MCTL0_)
#define ADC12MCTL1_ (0x0081) /* Registro de control de la memoria 1 */
DEFC( ADC12MCTL1 , ADC12MCTL1_)
#define ADC12MCTL2_ (0x0082) /* Registro de control de la memoria 2 */
DEFC( ADC12MCTL2 , ADC12MCTL2_)
#define ADC12MCTL3_ (0x0083) /* Registro de control de la memoria 3 */
DEFC( ADC12MCTL3 , ADC12MCTL3_)
#define ADC12MCTL4_ (0x0084) /* Registro de control de la memoria 4 */
DEFC( ADC12MCTL4 , ADC12MCTL4_)
#define ADC12MCTL5_ (0x0085) /* Registro de control de la memoria 5 */
DEFC( ADC12MCTL5 , ADC12MCTL5_)
#define ADC12MCTL6_ (0x0086) /* Registro de control de la memoria 6 */
DEFC( ADC12MCTL6 , ADC12MCTL6_)
#define ADC12MCTL7_ (0x0087) /* Registro de control de la memoria 7 */
DEFC( ADC12MCTL7 , ADC12MCTL7_)
#define ADC12MCTL8_ (0x0088) /* Registro de control de la memoria 8 */
DEFC( ADC12MCTL8 , ADC12MCTL8_)
#define ADC12MCTL9_ (0x0089) /* Registro de control de la memoria 9 */
DEFC( ADC12MCTL9 , ADC12MCTL9_)
#define ADC12MCTL10_ (0x008A) /* Registro de control de la memoria 10 */
DEFC( ADC12MCTL10 , ADC12MCTL10_)
#define ADC12MCTL11_ (0x008B) /* Registro de control de la memoria 11 */
DEFC( ADC12MCTL11 , ADC12MCTL11_)
#define ADC12MCTL12_ (0x008C) /* Registro de control de la memoria 12 */
DEFC( ADC12MCTL12 , ADC12MCTL12_)
#define ADC12MCTL13_ (0x008D) /* Registro de control de la memoria 13 */
DEFC( ADC12MCTL13 , ADC12MCTL13_)
#define ADC12MCTL14_ (0x008E) /* Registro de control de la memoria 14 */
DEFC( ADC12MCTL14 , ADC12MCTL14_)
#define ADC12MCTL15_ (0x008F) /* Registro de control de la memoria 15 */
DEFC( ADC12MCTL15 , ADC12MCTL15_)

Bits de Control del ADC12 – Registro ADC12CTL0

#define ADC12SC (0x001) /* Bit de disparo de conversión por SW*/


#define ENC (0x002) /* Bit de habilitación de conversión */
#define ADC12TOVIE (0x004) /* Permiso de int. de overflow en captura */
#define ADC12OVIE (0x008) /* Permiso de int. de sobreescritura de muestra */
#define ADC12ON (0x010) /* Habilitación del módulo ADC12 */
#define REFON (0x020) /* Uso de referencia interna para la conversión */
#define REF2_5V (0x040) /* Elección de valor de ref. interna 0:1.5V / 1:2.5V */
#define MSC (0x080) /* Modo de Muestreo Múltiple */
#define SHT00 (0x0100) /* Bit 0 de selección de tiempo de muestreo para MEM0-7 */
#define SHT01 (0x0200) /* Bit 1 de selección de tiempo de muestreo para MEM0-7 */
#define SHT02 (0x0400) /* Bit 2 de selección de tiempo de muestreo para MEM0-7 */
#define SHT03 (0x0800) /* Bit 3 de selección de tiempo de muestreo para MEM0-7 */
#define SHT10 (0x1000) /* Bit 0 de selección de tiempo de muestreo para MEM8-15 */
#define SHT11 (0x2000) /* Bit 1 de selección de tiempo de muestreo para MEM8-15 */
#define SHT12 (0x4000) /* Bit 2 de selección de tiempo de muestreo para MEM8-15 */
#define SHT13 (0x8000) /* Bit 3 de selección de tiempo de muestreo para MEM8-15 */
#define MSH (0x080)

Bits de Control del ADC12 – Registro ADC12CTL1

#define ADC12BUSY (0x0001) /* Bit indicador de conversor ADC12 ocupado */


#define CONSEQ0 (0x0002) /* Bit 0 de selección de selección de modo de conversión */
#define CONSEQ1 (0x0004) /* Bit 1 de selección de selección de modo de conversión */
#define ADC12SSEL0 (0x0008) /* Bit 0 de selección de fuente de reloj */
#define ADC12SSEL1 (0x0010) /* Bit 1 de selección de fuente de reloj */
#define ADC12DIV0 (0x0020) /* Bit 0 de división de frecuencia de reloj */
#define ADC12DIV1 (0x0040) /* Bit 1 de división de frecuencia de reloj */
#define ADC12DIV2 (0x0080) /* Bit 2 de división de frecuencia de reloj */
#define ISSH (0x0100) /* Bit de inversion de señal de muestreo */
#define SHP (0x0200) /* Bit de Modo de Muestreo/Retención */
#define SHS0 (0x0400) /* Bit 0 de selección de disparo de muestreo */
#define SHS1 (0x0800) /* Bit 1 de selección de disparo de muestreo */
#define CSTARTADD0 (0x1000) /* Bit 0 de selección de registro inicial de conversion */
#define CSTARTADD1 (0x2000) /* Bit 1 de selección de registro inicial de conversion */
#define CSTARTADD2 (0x4000) /* Bit 2 de selección de registro inicial de conversion */
#define CSTARTADD3 (0x8000) /* Bit 3 de selección de registro inicial de conversion */

Bits de Control del ADC12 – Registro ADC12MCTLx

#define INCH0 (0x0001) /* Bit 0 de selección de canal de entrada */


#define INCH1 (0x0002) /* Bit 1 de selección de canal de entrada */
#define INCH2 (0x0004) /* Bit 2 de selección de canal de entrada */
#define INCH3 (0x0008) /* Bit 3 de selección de canal de entrada */
#define SREF0 (0x0010) /* Bit 0 de selección de tensiones de referencia */
#define SREF1 (0x0020) /* Bit 1 de selección de tensiones de referencia */
#define SREF2 (0x0040) /* Bit 2 de selección de tensiones de referencia */
#define EOS (0x0080) /* Bit indicador de fin de secuencia de muestreo */

Configuración ADC12

#define SHT0_0 (0*0x100u) /* Tmuest. modo pulso: 4 ciclos de ADC12CLK MEM0-8 */


#define SHT0_1 (1*0x100u) /* Tmuest. modo pulso: 8 ciclos de ADC12CLK MEM0-8 */
#define SHT0_2 (2*0x100u) /* Tmuest. modo pulso: 16 ciclos de ADC12CLK MEM0-8 */
#define SHT0_3 (3*0x100u) /* Tmuest. modo pulso: 32 ciclos de ADC12CLK MEM0-8 */
#define SHT0_4 (4*0x100u) /* Tmuest. modo pulso: 64 ciclos de ADC12CLK MEM0-8 */
#define SHT0_5 (5*0x100u) /* Tmuest. modo pulso: 96 ciclos de ADC12CLK MEM0-8 */
#define SHT0_6 (6*0x100u) /* Tmuest. modo pulso: 128 ciclos de ADC12CLK MEM0-8 */
#define SHT0_7 (7*0x100u) /* Tmuest. modo pulso: 192 ciclos de ADC12CLK MEM0-8 */
#define SHT0_8 (8*0x100u) /* Tmuest. modo pulso: 256 ciclos de ADC12CLK MEM0-8 */
#define SHT0_9 (9*0x100u) /* Tmuest. modo pulso: 384 ciclos de ADC12CLK MEM0-8 */
#define SHT0_10 (10*0x100u) /* Tmuest. modo pulso: 512 ciclos de ADC12CLK MEM0-8 */
#define SHT0_11 (11*0x100u) /* Tmuest. modo pulso: 768 ciclos de ADC12CLK MEM0-8 */
#define SHT0_12 (12*0x100u) /* Tmuest. modo pulso: 1024 ciclos de ADC12CLK MEM0-8 */
#define SHT0_13 (13*0x100u) /* Tmuest. modo pulso: 1024 ciclos de ADC12CLK MEM0-8 */
#define SHT0_14 (14*0x100u) /* Tmuest. modo pulso: 1024 ciclos de ADC12CLK MEM0-8 */
#define SHT0_15 (15*0x100u) /* Tmuest. modo pulso: 1024 ciclos de ADC12CLK MEM0-8 */

#define SHT1_0 (0*0x1000u) /* Tmuest. modo pulso: 4 ciclos de ADC12CLK MEM0-8 */


#define SHT1_1 (1*0x1000u) /* Tmuest. modo pulso: 8 ciclos de ADC12CLK MEM0-8 */
#define SHT1_2 (2*0x1000u) /* Tmuest. modo pulso: 16 ciclos de ADC12CLK MEM0-8 */
#define SHT1_3 (3*0x1000u) /* Tmuest. modo pulso: 32 ciclos de ADC12CLK MEM0-8 */
#define SHT1_4 (4*0x1000u) /* Tmuest. modo pulso: 64 ciclos de ADC12CLK MEM0-8 */
#define SHT1_5 (5*0x1000u) /* Tmuest. modo pulso: 96 ciclos de ADC12CLK MEM0-8 */
#define SHT1_6 (6*0x1000u) /* Tmuest. modo pulso: 128 ciclos de ADC12CLK MEM0-8 */
#define SHT1_7 (7*0x1000u) /* Tmuest. modo pulso: 192 ciclos de ADC12CLK MEM0-8 */
#define SHT1_8 (8*0x1000u) /* Tmuest. modo pulso: 256 ciclos de ADC12CLK MEM0-8 */
#define SHT1_9 (9*0x1000u) /* Tmuest. modo pulso: 384 ciclos de ADC12CLK MEM0-8 */
#define SHT1_10 (10*0x1000u) /* Tmuest. modo pulso: 512 ciclos de ADC12CLK MEM0-8 */
#define SHT1_11 (11*0x1000u) /* Tmuest. modo pulso: 768 ciclos de ADC12CLK MEM0-8 */
#define SHT1_12 (12*0x1000u) /* Tmuest. modo pulso: 1024 ciclos de ADC12CLK MEM0-8 */
#define SHT1_13 (13*0x1000u) /* Tmuest. modo pulso: 1024 ciclos de ADC12CLK MEM0-8 */
#define SHT1_14 (14*0x1000u) /* Tmuest. modo pulso: 1024 ciclos de ADC12CLK MEM0-8 */
#define SHT1_15 (15*0x1000u) /* Tmuest. modo pulso: 1024 ciclos de ADC12CLK MEM0-8 */
#define CONSEQ_0 (0*2u) /* Modo de muestreo 0: Canal único, muestreo único */
#define CONSEQ_1 (1*2u) /* Modo de muestreo 1: Secuencia de canales, muestreo único */
#define CONSEQ_2 (2*2u) /* Modo de muestreo 2: Canal único, muestreo múltiple */
#define CONSEQ_3 (3*2u) /* Modo de muestreo 3: Secuencia de canales, muestreo múltiple */
#define ADC12SSEL_0 (0*8u) /* Reloj de muestreo ADC12OSC */
#define ADC12SSEL_1 (1*8u) /* Reloj de muestreo ACLK */
#define ADC12SSEL_2 (2*8u) /* Reloj de muestreo MCLK */
#define ADC12SSEL_3 (3*8u) /* Reloj de muestreo SMCLK */
#define ADC12DIV_0 (0*0x20u) /* Divisor frec. reloj escogido por /1 */
#define ADC12DIV_1 (1*0x20u) /* Divisor frec. reloj escogido por /2 */
#define ADC12DIV_2 (2*0x20u) /* Divisor frec. reloj escogido por /3 */
#define ADC12DIV_3 (3*0x20u) /* Divisor frec. reloj escogido por /4 */
#define ADC12DIV_4 (4*0x20u) /* Divisor frec. reloj escogido por /5 */
#define ADC12DIV_5 (5*0x20u) /* Divisor frec. reloj escogido por /6 */
#define ADC12DIV_6 (6*0x20u) /* Divisor frec. reloj escogido por /7 */
#define ADC12DIV_7 (7*0x20u) /* Divisor frec. reloj escogido por /8 */
#define SHS_0 (0*0x400u) /* Fuente de disparo ADC12SC */
#define SHS_1 (1*0x400u) /* Fuente de disparo Señal TA1 */
#define SHS_2 (2*0x400u) /* Fuente de disparo Señal TB0 */
#define SHS_3 (3*0x400u) /* Fuente de disparo Señal TB1 */
#define CSTARTADD_0 (0*0x1000u) /* Registro inicial de conversión 0 */
#define CSTARTADD_1 (1*0x1000u) /* Registro inicial de conversión 1 */
#define CSTARTADD_2 (2*0x1000u) /* Registro inicial de conversión 2 */
#define CSTARTADD_3 (3*0x1000u) /* Registro inicial de conversión 3 */
#define CSTARTADD_4 (4*0x1000u) /* Registro inicial de conversión 4 */
#define CSTARTADD_5 (5*0x1000u) /* Registro inicial de conversión 5 */
#define CSTARTADD_6 (6*0x1000u) /* Registro inicial de conversión 6 */
#define CSTARTADD_7 (7*0x1000u) /* Registro inicial de conversión 7 */
#define CSTARTADD_8 (8*0x1000u) /* Registro inicial de conversión 8 */
#define CSTARTADD_9 (9*0x1000u) /* Registro inicial de conversión 9 */
#define CSTARTADD_10 (10*0x1000u) /* Registro inicial de conversión 10 */
#define CSTARTADD_11 (11*0x1000u) /* Registro inicial de conversión 11 */
#define CSTARTADD_12 (12*0x1000u) /* Registro inicial de conversión 12 */
#define CSTARTADD_13 (13*0x1000u) /* Registro inicial de conversión 13 */
#define CSTARTADD_14 (14*0x1000u) /* Registro inicial de conversión 14 */
#define CSTARTADD_15 (15*0x1000u) /* Registro inicial de conversión 15 */

#define INCH_0 (0) /* Selección del canal de entrada 0 */


#define INCH_1 (1) /* Selección del canal de entrada 1 */
#define INCH_2 (2) /* Selección del canal de entrada 2 */
#define INCH_3 (3) /* Selección del canal de entrada 3 */
#define INCH_4 (4) /* Selección del canal de entrada 4 */
#define INCH_5 (5) /* Selección del canal de entrada 5 */
#define INCH_6 (6) /* Selección del canal de entrada 6 */
#define INCH_7 (7) /* Selección del canal de entrada 7 */
#define INCH_8 (8) /* Selección del canal de entrada por VeREF+ */
#define INCH_9 (9) /* Selección del canal de entrada por VREF-/VeREF- */
#define INCH_10 (10) /* Selección del canal de entrada para sensor de Tª */
#define INCH_11 (11) /* Selección del canal de entrada para (AVcc-AVss)/2 */
#define INCH_12 (12) /* Selección del canal de entrada para (AVcc-AVss)/2 */
#define INCH_13 (13) /* Selección del canal de entrada para (AVcc-AVss)/2 */
#define INCH_14 (14) /* Selección del canal de entrada para (AVcc-AVss)/2 */
#define INCH_15 (15) /* Selección del canal de entrada para (AVcc-AVss)/2 */

#define SREF_0 (0*0x10u) /* VR+: AVcc, VR-:AVss */


#define SREF_1 (1*0x10u) /* VR+: VREF+, VR-:AVss */
#define SREF_2 (2*0x10u) /* VR+: VeREF+ VR-:AVss */
#define SREF_3 (3*0x10u) /* VR+: VeREF+ VR-:AVss */
#define SREF_4 (4*0x10u) /* VR+: AVcc, VR-:VREF-/VeREF- */
#define SREF_5 (5*0x10u) /* VR+: VREF+, VR-:VREF-/VeREF- */
#define SREF_6 (6*0x10u) /* VR+: VeREF+, VR-:VREF-/VeREF- */
#define SREF_7 (7*0x10u) /* VR+: VeREF+, VR-:VREF-/VeREF- */

Temporizador Wachtdog
#define WDTCTL_ (0x0120) /* Registro de Control Temporizador Wachtdog */
DEFW( WDTCTL , WDTCTL_)

Bits WDTCTL
/* Los nombres de bits se anteceden con el prefijo "WDT" */
#define WDTIS0 (0x0001)
#define WDTIS1 (0x0002)
#define WDTSSEL (0x0004)
#define WDTCNTCL (0x0008)
#define WDTTMSEL (0x0010)
#define WDTNMI (0x0020)
#define WDTNMIES (0x0040)
#define WDTHOLD (0x0080)

Configuración Watchdog
#define WDTPW (0x5A00) /* Contraseña Watchdog “5A” */

Intervalos Watchdog modo Temporizador


1. Alimentado por SMCLK (a 1MHz)

#define WDT_MDLY_32 (WDTPW+WDTTMSEL+WDTCNTCL) /* 32ms (default) */


#define WDT_MDLY_8 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS0) /* 8ms */
#define WDT_MDLY_0_5 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1) /* 0.5ms */
#define WDT_MDLY_0_064 (WDTPW+WDTTMSEL+WDTCNTCL+WDTIS1+WDTIS0) /* 0.064ms */

2. Alimentado por ACLK (a 32 KHz)

#define WDT_ADLY_1000 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL) /* 1000ms */


#define WDT_ADLY_250 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS0) /* 250ms */
#define WDT_ADLY_16 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1) /* 16ms */
#define WDT_ADLY_1_9 (WDTPW+WDTTMSEL+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) /*1.9ms*/

Intervalos Watchdog modo Reset

3. Alimentado por SMCLK (a 1MHz)


#define WDT_MRST_32 (WDTPW+WDTCNTCL) /* 32ms (default) */
#define WDT_MRST_8 (WDTPW+WDTCNTCL+WDTIS0) /* 8ms */
#define WDT_MRST_0_5 (WDTPW+WDTCNTCL+WDTIS1) /* 0.5ms */
#define WDT_MRST_0_064 (WDTPW+WDTCNTCL+WDTIS1+WDTIS0) /* 0.064ms */

4. Alimentado por ACLK (a 32 KHz)

#define WDT_ARST_1000 (WDTPW+WDTCNTCL+WDTSSEL) /* 1000ms */


#define WDT_ARST_250 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS0) /* 250ms */
#define WDT_ARST_16 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1) /* 16ms */
#define WDT_ARST_1_9 (WDTPW+WDTCNTCL+WDTSSEL+WDTIS1+WDTIS0) /* 1.9ms */

Bits control de Interrupciones Watchdog


/* Ya han sido definidos en los registros de Función Especial*/
/* #define WDTIE 0x01 */
/* #define WDTIFG 0x01 */

Vous aimerez peut-être aussi