$ INCLUDE 'mc68hc908jk3.INC'
FLASH EQU $ECE0
RESET EQU $FFFE
LED EQU 1
SW EQU 2 ;PORTD2
COPD EQU 0
ORG FLASH
INICIO BSET COPD,CONFIG1 ;INHABILITA COPD
BSET LED,PORTB
BSET LED,DDRB
BCLR SW,PORTD
BCLR SW,DDRD
SALTO BRSET SW,PORTD,LED_ON ;SW ABIERTO? IR LED_ON
BRCLR SW,PORTD,LED_OFF ;SW CERRADO? IR LED_OFF
BRA SALTO
LED_ON BSET LED,PORTB ;ENCENDER LED
BRA SALTO
LED_OFF BCLR LED,PORTB ;APAGA LED
BRA SALTO
ORG RESET
DW INICIO
. Todos los registros referentes a puertos se colocan en cero, en condición de entradas.
. El puntero de la pila (SP) es forzado a $00FF.
. El bit del CCR toma el valor "1" lógico, deshabilitando las interrupciones enmascarables.
. El latch de interrupciones externas es borrado.
. El latch de STOP es borrado
. El latch de WAIT es borrado.
Explicaré lo que he comprendido del libro, claro que si tengo un error o me pueden ampliar un poco más de teoría, no vendría nada mal
sobre las lineas:
Código
GeSHi (asm):ORG RESET DW INICIO
Es importante conocer el valor que tendrán los puertos cuando ocurre un reset; por eso el RESET que se usa en las anteriores lineas es forzar al microcontrolador, para que inicie en una dirección conocida y así todos los registros, los periféricos, los bits de control son también forzados a un estado conocido.