laboratorio 2 de computadoras digitales

Páginas: 11 (2709 palabras) Publicado: 13 de septiembre de 2015
Laboratorio #2
Explorando la Programación en C para Embebidos
Fecha: 26/8/15


• Objetivos de Aprendizaje
En este módulo usted aprenderá algunas de las responsabilidades adicionales de un programador al escribir una aplicación para un sistema embebido en lugar de una aplicación informática de escritorio o personal. Usted aprenderá lo que el código de inicio (start-up) hace y cómo ycuándo usar la propiedad volátil de una variable. Usted también aprenderá cómo un programa en C puede tener acceso a registros de E/S, cómo los programas en lenguaje ensamblador se pueden mezclar con funciones de C, y cómo un programa en C se puede escribir para manejar las interrupciones.

PRE-LABExplora 3

Repita Explora 2, pero esta vez cree un proyecto nuevo y seleccione la opción Inicio mínimo.
1. ¿Usted obtiene un error o una advertencia al realizar el proyecto? ¿Qué significa eso?
2. ¿Qué cambios debe hacer en su programa para compensar el problema?
R: inicializar i2_final e I4 como parte del código.
3. Realice los cambios en el programa y verifique que el valor final dei2_final es el mismo que en Explora 2.
Estimular 2

1. Si está familiarizado con la programación en lenguaje ensamblador puede saber que la comparación de números con signo y sin signo requiere diferentes bifurcaciones condicionales en lenguaje ensamblador. ¿Qué cambios esperaría ver en el código ensamblador para el programa si ha cambiado todas las variables signed a unsigned char?
R: Elcódigo que evalúa i1 < i4 utiliza una instrucción BGT en el caso firmado y un bhi para números sin signo .

Explora 6

Determine si su compilador tiene una manera de asignar una variable global a una dirección específica. Si es así, agregue instrucciones suficientes para el siguiente programa y probar que el uso de la asignación del compilador genera código que lee y escribe en un puerto.

/*Define pointers to the HCS12 ATD port registers */ /* ATD Data register */
#define p_ATD (volatile unsigned char *) 0x0090
/* ATD Start convert register */
#define p_ATDCTL5 (unsigned char *) 0x0085 /* Value to start the ATD */
#define START_CONVERT 0x81
/* ATD Status register */
#define p_ATDSTAT0 (unsigned char *) 0x0086 /* Sequence complete flag */
#define SCF 0x80
void main(void) {
staticunsigned char atd_value1;
/* Start the ATD */
*p_ATDCTL5 = START_CONVERT; /* Wait for the ATD to finish */
while ( (*p_ATDSTAT0 & SCF) == 0); /* Read the ATD */
atd_value1 = *p_ATD;
for(;;) {} /* wait forever */
}

1: /* Define pointers to the HCS12 ATD port registers */
2: #define p_ATD (volatile unsigned char *) 0x0090/* ATD Data */
3: #define p_ATDCTL5 (unsigned char *) 0x0085 /* Startconvert register */
4: #define START_CONVERT 0x81 /* Value to start the ATD */
5:
6: #define p_ATDSTAT0 (unsigned char *) 0x0086 /* Status register */
7: #define SCF 0x80 /* Sequence complete flag */
8:
9: /* CodeWarrior Definitions */
10: volatile unsigned char cwATD @ 0x0090; /* ATD Data */
11: unsignedchar cwATDCTL5 @ 0x0085; /* Start convert register */
12: unsigned char cwATDSTAT0 @ 0x0086; /* Status register */
13:
14: void main(void) {
15: static unsigned char atd_value1;
16:
17: /* Start the ATD */
18: *p_ATDCTL5 = START_CONVERT; /* Using a portable pointer */
0000 c681 LDAB #129
0002 5b85 STAB 133
19: cwATDCTL5= START_CONVERT; /* Using a CodeWarrior definition */
0004 5b00 STAB cwATDCTL5
20: /* Wait for the ATD to finish */
21: while ( (*p_ATDSTAT0 & SCF) == 0);/* Using a portable pointer */
0006 4f8680fc BRCLR 134,#128,*+0 ;abs = 0006
22: while ((cwATDSTAT0 & SCF) == 0); /* Using a CodeWarrior definition */
000a 4f0080fc BRCLR cwATDSTAT0,#128,*+0...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Practica 2 Laboratorio de sistemas digitales
  • COMPUTADORAS DIGITALES 2
  • Computadoras digitales
  • La Computadora Digital
  • Computador Digital
  • laboratorio digital
  • Laboratorio Digitales
  • Laboratorio Digitales

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS