80 likes | 473 Views
Actividad Práctica sobre MC9S08SH8. Utilizando EBDM y CodeWarrior 10.1. Pantalla Inicial. for(k=0 ; k<10000 ; k++) { suma=suma+k; } #define LIMITE 10000 for(k=0 ; k< LIMITE ; k++) { suma=suma+k; }. #define LIMITE 5 for(k=0 ; k< LIMITE ; k++) { suma=suma+k; }
E N D
Actividad Práctica sobre MC9S08SH8 Utilizando EBDM y CodeWarrior 10.1
Pantalla Inicial Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-
for(k=0 ; k<10000 ; k++) { suma=suma+k; } #define LIMITE 10000 for(k=0 ; k< LIMITE ; k++) { suma=suma+k; } #define LIMITE 5 for(k=0 ; k< LIMITE ; k++) { suma=suma+k; } for(k=0 ; k< LIMITE ; k++) { if(k%2==0) { suma=suma+k; } suma=suma+k; } for(k=0 ; k< LIMITE ; k++) { if(k%2==1) { suma=suma+k; } } Macros #define Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-
Como acceder a los puertos • Los registros de los periféricos están mapeados en memoria. • No es fácil acordarse de las direcciones • Queremos un sistema mejor. • Nos convendría que los registros se vieran como variables. • CW nos da esto resuelto, usando macros en el archivo mc9s08sh8.h Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-
archivo mc9s08sh8.h externvolatile PTBDSTR _PTBD @0x00000002; #define PTBD _PTBD.Byte #define PTBD_PTBD0 _PTBD.Bits.PTBD0 #define PTBD_PTBD1 _PTBD.Bits.PTBD1 #define PTBD_PTBD2 _PTBD.Bits.PTBD2 #define PTBD_PTBD3 _PTBD.Bits.PTBD3 #define PTBD_PTBD4 _PTBD.Bits.PTBD4 #define PTBD_PTBD5 _PTBD.Bits.PTBD5 #define PTBD_PTBD6 _PTBD.Bits.PTBD6 #define PTBD_PTBD7 _PTBD.Bits.PTBD7 Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-
Placa de Prueba Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-
R Placa de LEDS b0 b1 b2 b3 b4 b7 b5 b6 R R R R R R R G R B B G Y Y R Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-
Encendido / Apagado de los leds conectados al puerto B: Encendido del bit 0 PTBD_PTBD0=1; Apagado bit 0 PTBD_PTBD0=1; Si quiero trabajar con todo el puerto junto, por ejemplo todos los bits pares. PTBD=0x55 (01010101); si quiero invertirlos ( bits impares) PTBD=~PTBD; o bien PTBD=PTBD^ 0xFF; Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-