Actividad Práctica sobre MC9S08SH8

8
Actividad Práctica Actividad Práctica sobre MC9S08SH8 sobre MC9S08SH8 Utilizando EBDM y Utilizando EBDM y CodeWarrior 10.1 CodeWarrior 10.1

description

Actividad Práctica sobre MC9S08SH8. Utilizando EBDM y CodeWarrior 10.1. Pantalla Inicial. for(k=0 ; k

Transcript of Actividad Práctica sobre MC9S08SH8

Page 1: Actividad Práctica sobre MC9S08SH8

Actividad Práctica Actividad Práctica sobre MC9S08SH8sobre MC9S08SH8Utilizando EBDM y Utilizando EBDM y

CodeWarrior 10.1CodeWarrior 10.1

Page 2: Actividad Práctica sobre MC9S08SH8

16/08/201316/08/2013 Introducción a la Programación en C sobre uC 9S0Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-8 de Freescale -SASE 2013-

22

Ing. Gerardo Sager

FI-UNLP

[email protected]

Pantalla InicialPantalla Inicial

Page 3: Actividad Práctica sobre MC9S08SH8

16/08/201316/08/2013 Introducción a la Programación en C sobre uC 9S0Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-8 de Freescale -SASE 2013-

33

Ing. Gerardo Sager

FI-UNLP

[email protected]

Macros #defineMacros #definefor(k=0 ; k<10000 ; k++)for(k=0 ; k<10000 ; k++)

{{suma=suma+k;suma=suma+k;}}

#define LIMITE 10000#define LIMITE 10000for(k=0 ; k< LIMITE ; k++)for(k=0 ; k< LIMITE ; k++)

{{suma=suma+k;suma=suma+k;}}

#define LIMITE 5#define LIMITE 5for(k=0 ; k< LIMITE ; k++)for(k=0 ; k< LIMITE ; k++)

{{suma=suma+k;suma=suma+k;}}

for(k=0 ; k< LIMITE ; k++)for(k=0 ; k< LIMITE ; k++){{if(k%2==0)if(k%2==0)

{{suma=suma+k;suma=suma+k;}}

suma=suma+k;suma=suma+k;}}

for(k=0 ; k< LIMITE ; k++)for(k=0 ; k< LIMITE ; k++){{if(k%2==1)if(k%2==1)

{{suma=suma+k;suma=suma+k;}}

}}

Page 4: Actividad Práctica sobre MC9S08SH8

16/08/201316/08/2013 Introducción a la Programación en C sobre uC 9S0Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-8 de Freescale -SASE 2013-

44

Ing. Gerardo Sager

FI-UNLP

[email protected] acceder a los Como acceder a los puertospuertos

Los registros de los periféricos están Los registros de los periféricos están mapeados en memoria.mapeados en memoria.

No es fácil acordarse de las direccionesNo es fácil acordarse de las direcciones Queremos un sistema mejor.Queremos un sistema mejor. Nos convendría que los registros se vieran Nos convendría que los registros se vieran

como variables.como variables. CW nos da esto resuelto, usando macros en el CW nos da esto resuelto, usando macros en el

archivo mc9s08sh8.harchivo mc9s08sh8.h

Page 5: Actividad Práctica sobre MC9S08SH8

16/08/201316/08/2013 Introducción a la Programación en C sobre uC 9S0Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-8 de Freescale -SASE 2013-

55

Ing. Gerardo Sager

FI-UNLP

[email protected]

archivo mc9s08sh8.harchivo mc9s08sh8.h

externextern volatilevolatile PTBDSTR _PTBD @0x00000002; PTBDSTR _PTBD @0x00000002;#define#define PTBD PTBD _PTBD.Byte _PTBD.Byte#define#define PTBD_PTBD0 _PTBD.Bits.PTBD0 PTBD_PTBD0 _PTBD.Bits.PTBD0#define#define PTBD_PTBD1 _PTBD.Bits.PTBD1 PTBD_PTBD1 _PTBD.Bits.PTBD1#define#define PTBD_PTBD2 _PTBD.Bits.PTBD2 PTBD_PTBD2 _PTBD.Bits.PTBD2#define#define PTBD_PTBD3 _PTBD.Bits.PTBD3 PTBD_PTBD3 _PTBD.Bits.PTBD3#define#define PTBD_PTBD4 _PTBD.Bits.PTBD4 PTBD_PTBD4 _PTBD.Bits.PTBD4#define#define PTBD_PTBD5 _PTBD.Bits.PTBD5 PTBD_PTBD5 _PTBD.Bits.PTBD5#define#define PTBD_PTBD6 _PTBD.Bits.PTBD6 PTBD_PTBD6 _PTBD.Bits.PTBD6#define#define PTBD_PTBD7 _PTBD.Bits.PTBD7 PTBD_PTBD7 _PTBD.Bits.PTBD7

Page 6: Actividad Práctica sobre MC9S08SH8

16/08/201316/08/2013 Introducción a la Programación en C sobre uC 9S0Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-8 de Freescale -SASE 2013-

66

Ing. Gerardo Sager

FI-UNLP

[email protected] de PruebaPlaca de Prueba

Page 7: Actividad Práctica sobre MC9S08SH8

16/08/201316/08/2013 Introducción a la Programación en C sobre uC 9S0Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-8 de Freescale -SASE 2013-

77

Ing. Gerardo Sager

FI-UNLP

[email protected]

Placa de LEDSPlaca de LEDS

RR R R R

RY Y RG

R R

b0

B

R

b7b1 b2 b6b3 b5b4

B G

Page 8: Actividad Práctica sobre MC9S08SH8

16/08/201316/08/2013 Introducción a la Programación en C sobre uC 9S0Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013-8 de Freescale -SASE 2013-

88

Ing. Gerardo Sager

FI-UNLP

[email protected] / Apagado de los Encendido / Apagado de los leds conectados al puerto B:leds conectados al puerto B:

Encendido del bit 0Encendido del bit 0PTBD_PTBD0=1;PTBD_PTBD0=1;Apagado bit 0Apagado bit 0PTBD_PTBD0=1;PTBD_PTBD0=1;Si quiero trabajar con todo el puerto junto, por ejemplo todos los bits Si quiero trabajar con todo el puerto junto, por ejemplo todos los bits

pares. pares. PTBD=0x55 (01010101);PTBD=0x55 (01010101);si quiero invertirlos ( bits impares) si quiero invertirlos ( bits impares) PTBD=~PTBD;PTBD=~PTBD;o bien o bien PTBD=PTBD^ 0xFF;PTBD=PTBD^ 0xFF;