;PWM servo, Próba

	#include <p16f882.inc>		;proci választás

__config _CONFIG1, (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _CPD_OFF & _CP_OFF & _IESO_OFF & _FCMEN_OFF & _LVP_OFF)

#define	led		PORTB

bank0	macro
	bcf	STATUS,RP0
	bcf	STATUS,RP1
	endm
bank1	macro
	bsf	STATUS,RP0
	bcf	STATUS,RP1
	endm
bank2	macro
	bcf	STATUS,RP0
	bsf	STATUS,RP0
	endm
bank3	macro
	bsf	STATUS,RP0
	bsf	STATUS,RP1
	endm
;*****************************************************************
	cblock 0x20
adc
erl
d1
pwm
	endc

	org 0x000					;Program kezdete
nop
	GOTO	init
		org	0x004
init
bank0
	clrf	PORTA
	clrf	PORTB
	clrf	PORTC
bank1
	movlw	b'00000001'	
	movwf	TRISA
	clrf	TRISB
	clrf	TRISC
bank3
	bsf	ANSEL,0
bank1
	movlw	b'00000000'
	movwf	ADCON1
	movlw	d'180'
	movwf	PR2
bank0
	movlw	b'10000001'
	movwf	ADCON0
	call	pwm_mod
;*-*-*-*--*-*-*-*-*-*-**-*-******************************************
start
	call	advar
	movlw	b'00001000'
	movwf	PORTC
	bsf		ADCON0,GO
	btfss	ADCON0,GO
	goto	$-1
	movf	ADRESH,W
	movwf	pwm
	movwf	CCPR1L

	call	Delay

	goto	start
pwm_mod
		clrf	TMR2
		movlw	b'00000011'
		movwf	T2CON		;a Timer 2 előosztás beállítása K=4-re 
		movlw	b'00001100'	;W 
		movwf	CCP1CON		;DC1B1 és DC1B0 érték bevitele, PWM indítása
		bsf	T2CON,2			;a Timer 2 indítása 
	return
advar
	movlw	.50
	movwf	adc
	decfsz	adc,f
	goto	$-1
return
Delay
	decfsz	pwm,f
	goto	Delay
	return
end