• Domingo 22 de Diciembre de 2024, 12:55

Autor Tema:  Contador 0 a 9999 en Codewarrior  (Leído 5177 veces)

Arlekin

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Contador 0 a 9999 en Codewarrior
« en: Sábado 27 de Noviembre de 2010, 00:26 »
0
Hola, soy nuevo y vengo con un problema. Soy estudiante y estoy llevando la asignatura de Microcontroladores, pero para mi mala suerte, me ha tocado llevarla con un profesor que exige mucho y enseña poco. Necesito hacer, como dice el tema, un programa en código ensamblador que me ejecute una cuenta desde el cero hasta el 9999, con un lapso total de un segundo entre cada número, todo esto en el software de Codewarrior y el microcontrolador M9S08QG8. Aunque mi amigo y yo tratamos de hacerlo, nos marcaba varios errores y no obtenemos apoyo alguno por parte del profesor. Es muy urgente, muchas gracias de antemano  :(

© Jonathan ©

  • Moderador
  • ******
  • Mensajes: 1671
  • Nacionalidad: ar
    • Ver Perfil
    • http://www.einstec.com.ar
Re: Contador 0 a 9999 en Codewarrior
« Respuesta #1 en: Jueves 2 de Diciembre de 2010, 04:00 »
0
Buenas noches, espero todavia estemos a tiempo, tienes a mano el codigo fuente del contador, subilo que le hecho una mirada y veo en que te puedo ayudar. Saludos :)
EINSTEC Tecnología «La única fuente del conocimiento es la experiencia.»

«Lo importante es no dejar de hacerse preguntas.»

Arlekin

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Contador 0 a 9999 en Codewarrior
« Respuesta #2 en: Sábado 4 de Diciembre de 2010, 01:59 »
0
Disculpa mi ignorancia, no se qué es el código fuente :( sin embargo, revisando algunos modos de direccionamiento, probe a crear el código mencionado con ese modo, he aquí mi resultado:

;*******************************************************************
;* This stationery serves as the framework for a user application. *
;* For a more comprehensive program that demonstrates the more     *
;* advanced functionality of this processor, please see the        *
;* demonstration applications, located in the examples             *
;* subdirectory of the "Freescale CodeWarrior for HC08" program    *
;* directory.                                                      *
;*******************************************************************

; Include derivative-specific definitions
            INCLUDE 'derivative.inc'
;
; export symbols
;
            XDEF _Startup
            ABSENTRY _Startup

;
; variable/data section
;
            ORG    RAMStart         ; Insert your data definition here
CNT         RMB    2

;
; code section
;
            ORG    ROMStart
; Include device initialization code
            INCLUDE 'MCUInit.inc'

_Startup:
            LDHX   #RAMEnd+1        ; initialize the stack pointer
            TXS
            ; Call generated Device Initialization function
            JSR    MCU_init

mainLoop:
            ; Insert your code here
            LDA    SOPT1
            AND    #%01111111
            STA    SOPT1
            LDA    #%11111111
            STA    PTBDD
            CLRA
            STA    CNT
            LDA    #%01010111
            STA    SRTISC
            CLI

            BRA    mainLoop

SIRTI       SEI
            LDHX   CNT
            CPHX   #9999
            BEQ    ET01
            LDA    #0,X
            STA    PTBD
            INCX
            STHX   CNT
            BRA    ET02
           
ET01        LDA    #0,X
            STA    PTBD
            CLRX
            CLRH
            STHX    CNT
           
ET02        LDA    #%01010111
            STA    SRTISC
            CLI
            RTI
            ORG    Vrti
            FDB    SIrti

Ignorando casi toda la inicialización y solamente revisando a partir del mainloop, mi duda es si realmente funcionaria como deseo; que cuente de 0 a 9999?