	PROCESSOR 16F690
	#INCLUDE "P16F690.INC"
	__CONFIG _WDT_OFF & _INTOSCIO & _PWRTE_ON 	
	CBLOCK 0x70

		Valto
		Ccpr
		
		ENDC
		
		org		0
		goto		Main
		
		org		4
		btfss		Valto,0
		goto		Start
		goto		Start2		
		

;=================================================================

Main
		
; PWM period

		banksel		PR2				; bank1
		movlw		0x3f
		movwf		PR2
		
		bsf			OSCCON,4	
		bsf			PIE1,0		

; ECCP config

		banksel		CCP1CON			; bank0
		movlw		B'00001100'
		movwf		CCP1CON
		
; Timer1 config

		bsf			INTCON,7
		bsf			INTCON,6
		bcf			PIR1,0
		movlw		B'00110000'
		movwf		T1CON
		clrf		TMR1L
		clrf		TMR1H

;=================================================================		
		
Start
		bcf			PIR1,0
		bsf			Valto,0
		bsf			INTCON,7
		bsf			INTCON,6
		
; PWM duty cycle
		
Start1	movlw		B'01111111'		; A sziréna egyik hangja
		movwf		CCPR1L
		bsf			T1CON,0
		call		Hang
		goto		Start1
		
;==========================================================

Start2
		bcf			PIR1,0
		bcf			Valto,0
		bsf			INTCON,7
		bsf			INTCON,6

; PWM duty cycle

Start3	movlw		B'01111000'		; A sziréna másik hangja
		movwf		CCPR1L
		bsf			T1CON,0
		call		Hang
		goto		Start3		
		
;=================================================================
		
Hang
		
; Timer2 config

		bcf			PIR1,1
		bsf			T2CON,2
		movf		CCPR1L,0
		movwf		Ccpr		
; Háromszög

Decr
		decfsz		CCPR1L,1
		goto		$+2
		goto		Incr
		call		Outen
		goto		Decr
		
Incr
		decfsz		Ccpr,1
		goto		$+2
		return
		incf		CCPR1L,1
		call		Outen
		goto		Incr
		

;===========================================================

; PWM output enable
		
Outen		
		btfss		PIR1,1		
		goto		$-1
		banksel		TRISC			; bank1
		bcf			TRISC,5
		banksel		ECCPAS			; bank0
		bcf			ECCPAS,7
		return

;==============================================================

		end							