;	Blinker med Timer0 variabel delay
;	Testet 10 Maj 2926

;	gpasm -a inhx32 blink4.asm


	processor       16f1509
	include         p16f1509.inc


; list p=16f1509
#include <p16f1509.inc>

CONFIG  FOSC    =   INTOSC
CONFIG  WDTE    =   OFF
CONFIG  LVP =   ON


i	org 0x70

	ORG	0
	goto	init

	org	05
init:	movlb	1		; Bank 1
	clrf	TRISA
	banksel	ANSELC
	clrf	ANSELC
	banksel	OSCCON		; Oscilator frq
	movlw	B'00111011'
	movwf	OSCCON

start:	movlb	0		; Bank 0
		bsf     PORTA, RA2
		movlw	3		; Delay
		call	delay
		movlb   0		; Bank 0
		bcf     PORTA, RA2
		movlw	3		; Delay
		call	delay
		goto	start


delay:	movwf	i
		decf	i
		call	wait
		movf	i,w
		btfsc	STATUS,Z
		return
		goto	delay

wait:
	banksel	TMR0
	clrf	TMR0
	banksel OPTION_REG
	movlw	B'00000111'	; Prescaler
	movwf	OPTION_REG
	bcf     INTCON, TMR0IF	; Start timer
l1:	btfss   INTCON, TMR0IF	; Timer overflow
	goto	l1
	return


	end
