Uso Del S08SH8

Descargar como txt, pdf o txt
Descargar como txt, pdf o txt
Está en la página 1de 8

http://www.youtube.com/user/cwexamples?feature=watch ; Esta es la ruta de enlace de un video de uso de Code Warrior **************************** WEB:http://vloox.

com/500/manejo-de-puertos-de-es-parte-1/ **************** creando proyectos para S08SH8 ********************************** Ahora pongamos todo esto en prctica. Primero debemos crear un proyecto nuevo en C odewarrior 10.2. Para esto podemos seguir los videos que se encuentran en el pos t anterior. Seleccionamos el micro MC9S08SH8 y luego de esto eligimos simulacin p or software (P&E Full Chip Simulation). En la siguiente ventana podemos elegir el lenguaje, que en este caso es Absolute Assembly. Y esto es todo lo que configuraremos por ahora. A la izquierda podemos encontrar una lista de nuestros proyectos. Navegamos hast a la carpeta Sources y abrimos el archivo main.asm. Esta es la plantilla para cr ear nuestro programa. Lo primero que haremos ser modificar la siguiente lnea: ASM | 1 ORG RAMStart Por: ASM | 1 ORG Z_RAMStart Luego debemos configurar los puertos de entrada/salida con el siguiente cdigo: ASM | 1 ******************************************** 2 *Configuracin de puertos de entrada/salida* 3 ******************************************** 4 bset 0,PTBDD 5 mov #%11111111,PTADD ;Configuro todo el registro PTADD como salida ;Configuro el bit 0 del registro PTBDD como salida copy code | ? copy code | ? copy code | ?

6 bclr 5,PTCDD ;Configuro el bit 5 del registro PTCDD como salida

Por ltimo observemos la etiqueta mainLoop. Lo que hace es indicar el comienzo del programa principal. Este ser el lugar en dnde escribiremos nuestro cdigo, que al t erminarlo con la instruccin: ASM | 1 bra mainLoop ;Salta siempre al inicio del programa principal copy code | ?

se crear un bucle infinito que ejecutar nuestro cdigo una y otra vez. En este caso escribiremos el siguiente cdigo: ASM | 1 bset 0,PTBD 2 bclr 0,PTBD 3 bset 3,PTAD 4 bclr 3,PTAD ;Pongo en 0 el bit 3 del puerto A ;Pongo en 1 el bit 3 del puerto A ;Pongo en 0 el bit 0 del puerto B ;Pongo en 1 el bit 0 del puerto B copy code | ?

Ya estamos listos para probar nuestro programa. Primero debemos compilarlo hacie ndo click en Build. Si todo est bien, no aparecer ningn error. Luego hacemos click en Debug. Con la tecla F5 podemos hacer avanzar nuestro programa instruccin por i nstruccin y as ver como se van modificando los registros en la parte superior dere cha de la pantalla. Nuevamente, para ms detalles pueden seguir los videos que se encuentran en el post anterior. ********* ******************************************************************* 02 ;* This stationery serves as the framework for a user application. * 03 ;* For a more comprehensive program that demonstrates the more * 04 ;* advanced functionality of this processor, please see the * 05 ;* demonstration applications, located in the examples *

06 ;* subdirectory of the "Freescale CodeWarrior for HC08" program * 07 ;* directory. * 08 ;******************************************************************* 09

10 ; Include derivative-specific definitions 11 INCLUDE 'derivative.inc' 12

13 ; 14 ; export symbols 15 ; 16 XDEF _Startup 17 ABSENTRY _Startup 18

19 ; 20 ; variable/data section

21 ; 22 ORG Z_RAMStart ; Insert your data definition here 23 ExampleVar: DS.B 1 24

25 ; 26 ; code section 27 ; 28 ORG ROMStart 29

30 _Startup: 31 LDHX #RAMEnd+1 ; initialize the stack pointer 32 TXS 33

34 ******************************************** 35 *Configuracin de puertos de entrada/salida*

36 ******************************************** 37 bset 0,PTBDD ;Configuro el bit 0 del puerto B como salida 38 mov #%11111111,PTADD ;Configuro todo el puerto A como salida 39 bclr 2,PTCDD ;Configuro el bit 5 del puerto C como salida 40

41 mainLoop: 42 bset 0,PTBD ;Pongo en 1 el bit 0 del puerto B 43 bclr 0,PTBD ;Pongo en 0 el bit 0 del puerto B 44 bset 3,PTAD ;Pongo en 1 el bit 3 del puerto A 45 bclr 3,PTAD ;Pongo en 0 el bit 3 del puerto A 46 NOP 47

48 feed_watchdog 49 BRA mainLoop 50

51 ;************************************************************** 52 ;* spurious - Spurious Interrupt Service Routine. * 53 ;* (unwanted interrupt) * 54 ;************************************************************** 55

56 spurious: ; placed here so that security value 57 NOP ; does not change all the time. 58 RTI 59

60 ;************************************************************** 61 ;* Interrupt Vectors * 62 ;************************************************************** 63

64 ORG $FFFA 65

66 DC.W spurious ; 67 DC.W spurious ; SWI 68 DC.W _Startup ; Reset

*************************** SEGUNDA PARTE *********************+ Manejo de puertos de E/S Parte 2

En este nuevo ejemplo aprenderemos a configurar el reloj interno del microcontro lador y a seguir aplicando lo que aprendimos en el post anterior. Configuraremos el microcontrolador para que cuando presionemos un pulsador se en cienda y apague un LED a una velocidad de aproximadamente 300ms, y que deje de p arpadear luego de soltarlo. Utilizaremos el reloj interno del micro, por lo que no hace falta agregar ningn o scilador externo. Por default, el reloj est funcionando a 32Mhz y la frecuencia d e reloj del bus a 8Mhz. Para modificarlo debemos configurar el registro ICSC1(In ternal Clock Source Control Register 1). Este es un registro de 8 bits y en la s iguiente imagen se puede ver su estructura.Para obtener una frecuencia de bus de 2Mhz, haremos lo siguiente. Los bits 7 y 6 que seleccionan la fuente del reloj, los dejaremos en 00. Los bits 5 al 3 son para elegir el valor por el que se div ide el reloj, entonces los pondremos en 010 para dividir por 4 (32Mhz/4=8Mhz). E l bit 2 lo pondremos en 1 para seleccionar la referencia de reloj interna. Y por ltimo, los bits 1 y 0 los dejaremos en 0. De esta manera, obtenemos una frecuencia de reloj de 8Mhz. En la familia HCS08, la frecuencia de reloj del bus es la frecuencia de reloj dividido 2, por lo que en este caso obtendramos una frecuencia de 4Mhz, pero en el registro ICSC2 podrem os seleccionar el divisor que por default viene en 2, obteniendo as una frecuenci a de bus de 2Mhz. Por lo que no deberemos modificar el registro ICSC2. El cdigo en asembler para esto sera: En la prxima parte veremos un programa un poco ms completo, tanto en lenguaje asse mbler como en C. *************** Manejo de puertos de E/S Parte 2

En este nuevo ejemplo aprenderemos a configurar el reloj interno del microcontro lador y a seguir aplicando lo que aprendimos en el post anterior.

Configuraremos el microcontrolador para que cuando presionemos un pulsador se en cienda y apague un LED a una velocidad de aproximadamente 300ms, y que deje de p arpadear luego de soltarlo. Utilizaremos el reloj interno del micro, por lo que no hace falta agregar ningn o scilador externo. Por default, el reloj est funcionando a 32Mhz y la frecuencia d e reloj del bus a 8Mhz. Para modificarlo debemos configurar el registro ICSC1(In ternal Clock Source Control Register 1). Este es un registro de 8 bits y en la s iguiente imagen se puede ver su estructura.Para obtener una frecuencia de bus de 2Mhz, haremos lo siguiente. Los bits 7 y 6 que seleccionan la fuente del reloj, los dejaremos en 00. Los bits 5 al 3 son para elegir el valor por el que se div ide el reloj, entonces los pondremos en 010 para dividir por 4 (32Mhz/4=8Mhz). E l bit 2 lo pondremos en 1 para seleccionar la referencia de reloj interna. Y por ltimo, los bits 1 y 0 los dejaremos en 0. De esta manera, obtenemos una frecuencia de reloj de 8Mhz. En la familia HCS08, la frecuencia de reloj del bus es la frecuencia de reloj dividido 2, por lo que en este caso obtendramos una frecuencia de 4Mhz, pero en el registro ICSC2 podrem os seleccionar el divisor que por default viene en 2, obteniendo as una frecuenci a de bus de 2Mhz. Por lo que no deberemos modificar el registro ICSC2. El cdigo en asembler para esto sera:

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy