Actividad Práctica sobre MC9S08SH8 Utilizando EBDM y CodeWarrior 10.1 Ing. Gerardo Sager Pantalla Inicial 16/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013- FI-UNLP [email protected].

Download Report

Transcript Actividad Práctica sobre MC9S08SH8 Utilizando EBDM y CodeWarrior 10.1 Ing. Gerardo Sager Pantalla Inicial 16/08/2013 Introducción a la Programación en C sobre uC 9S08 de Freescale -SASE 2013- FI-UNLP [email protected].

Slide 1

Actividad Práctica
sobre MC9S08SH8
Utilizando EBDM y
CodeWarrior 10.1


Slide 2

Ing. Gerardo Sager

Pantalla Inicial

16/08/2013

Introducción a la Programación en C sobre uC
9S08 de Freescale
-SASE 2013-

FI-UNLP
[email protected]

2


Slide 3

Ing. Gerardo Sager

Macros #define
for(k=0 ; k<10000 ; k++)
{
suma=suma+k;
}

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

FI-UNLP
[email protected]

#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;
}
}
16/08/2013

Introducción a la Programación en C sobre uC
9S08 de Freescale
-SASE 2013-

3


Slide 4

Como acceder a los
puertos

Ing. Gerardo Sager

FI-UNLP
[email protected]

 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
16/08/2013

Introducción a la Programación en C sobre uC
9S08 de Freescale
-SASE 2013-

4


Slide 5

Ing. Gerardo Sager

archivo mc9s08sh8.h

FI-UNLP
[email protected]

extern volatile 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
16/08/2013

Introducción a la Programación en C sobre uC
9S08 de Freescale
-SASE 2013-

5


Slide 6

Ing. Gerardo Sager

Placa de Prueba

16/08/2013

Introducción a la Programación en C sobre uC
9S08 de Freescale
-SASE 2013-

FI-UNLP
[email protected]

6


Slide 7

Ing. Gerardo Sager

FI-UNLP

Placa de LEDS

16/08/2013

B

G

G

Y

b7

b6

R

R

b5

R

b4

R

R

B

b3

R

b2

R

b1

R

b0

[email protected]

Y

Introducción a la Programación en C sobre uC
9S08 de Freescale
-SASE 2013-

R

R

7


Slide 8

Ing. Gerardo Sager

Encendido / Apagado de los
leds conectados al puerto B:

FI-UNLP

[email protected]

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;

16/08/2013

Introducción a la Programación en C sobre uC
9S08 de Freescale
-SASE 2013-

8