	list p=12f675
	#include <p12f675.inc>

	errorlevel	-302

	__CONFIG _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF % _PWRTE_ON & _INTRC_OSC_NOCLKOUT

;-- zmienne ------------------------------------------------------
				CBLOCK  0x022
delay_l
delay_h
				ENDC

;-- kod ----------------------------------------------------------
				ORG 	0x000
				clrf	PCLATH				;na wszelki wypadek
				goto	init
				
				ORG		0x004				;wektor przerwania
				retfie						;powrót z przerwania
				;--- inicjacja ;)
init:			call	0x3ff				;factory calib. value
				bsf		STATUS,RP0
				movwf	OSCCAL
				bcf		STATUS,RP0
				bcf		STATUS,RP0
				clrf	GPIO
				movlw	07h
				movwf	CMCON
				bsf		STATUS,RP0
				clrf	ANSEL				;konieczne dla 12F675
				movlw	b'00111111'
				movwf	TRISIO
				bcf		WPU,4
				bcf		OPTION_REG,NOT_GPPU
pullups			bcf		STATUS,RP0

fullcurrent:	bsf		GPIO,4
				bsf		STATUS,RP0
				bcf		TRISIO,4
				bcf		STATUS,RP0

clear:			bcf		INTCON,INTF
				clrf	delay_l
				clrf	delay_h

loop:			btfsc	INTCON,INTF
				goto	clear
				btfss	GPIO,0				;sprawdzenie jumpera 3
				goto	clear

				movlw	d'1'
				addwf	delay_l,f
				btfsc	STATUS,C
				addwf	delay_h,f
				btfsc	STATUS,C
				goto 	idle

				nop
				nop
				nop
				nop
				goto	loop

idle:			bsf		STATUS,RP0
				bsf		TRISIO,4
reduction		bcf		STATUS,RP0

				;--- pętla bezczynności - tryb redukcji prądu
idleloop:		btfsc	INTCON,INTF
				goto	fullcurrent
				btfss	GPIO,0				;sprawdzenie jumpera 3
				goto	fullcurrent
				goto	idleloop	

				END

