*************************************************************************
* TEMPO.ASM  (C) Grupo J&J. Febrero 1997                                *
*-----------------------------------------------------------------------*
* Programa ejemplo para la tarjeta CT6811. Este programa se debe cargar *
* en la ram interna del 6811                                            *
*-----------------------------------------------------------------------*
* Ejemplo de utilizacion del comparador 4 para realizar temporizaciones *
* mediante interrupciones. El programa principal enciende el led,       *
* activa la temporizacion y ejecuta un bucle infinito. Al cabo de 2     *
* segundos el led se apagara.                                           *
*************************************************************************

TMSK1   EQU $22
TFLG1   EQU $23
TCTL1   EQU $20
TOC4    EQU $1C
TMSK2   EQU $24
TCNT    EQU $0E
PORTA   EQU $00

TIEMPO  EQU 20000  ; N£mero de tics de reloj necesarios para generar un
*                  ; retraso de 10 ms. Cada tic de reloj son 500ns = 0.5useg
*                  ; 20000*0.5 = 10000microseg = 10mseg.

        ORG $0000

        BRA inicio

cuenta  FCB 0

inicio  LDX #$1000

        LDAA #$10
        STAA TMSK1,X  ; Permitir la interupci¢n del comparador 4

        LDAA #$40     ; Encender el led.
        STAA PORTA,X

        LDAA #200     ; Mantener el led encendido durante 2 segundos
        STAA cuenta

        CLI           ; Activar las interrupciones

inf     BRA inf

******************************************************************
* Rutina de servicio de interrupcion del comparador 4            *
******************************************************************
oc4
        BSET TFLG1,X $10        ; Poner a cero flag del comparador 4

        LDD TCNT,X
        ADDD #TIEMPO     ; Esperar 10 mseg
        STD TOC4,X

        LDAA cuenta
        CMPA #0          ; Ha llegado la cuenta a 0?
        BEQ fin          ; Si--> Apagar el led
        dec cuenta
        RTI
fin
        CLRA
        STAA PORTA,X     ; Apagar el led
        BCLR TMSK1,X $10 ; Desactivar interrupcion comparador 4
        RTI

        ORG $00D6
        JMP oc4

        END
