doch weiter unten

hier habe ich anderen code sollte aber das gleihe bewirken =)

weißt du du den was ich meine?
hast du nicht noch ideeen?


Code:
	LIST      p=16F877	; list directive to define processor
	#include <p16F877.inc>; processor specific variable defs
	__CONFIG H'3F39' ; _CP_OFF & _WDT_OFF & _PWRTE_ON & _RC_OSC
	ERRORLEVEL -302 ; unterdrücke Warnungen zur Bank-Auswahl
	ERRORLEVEL -203




;**************************************************************
;*
;* Pinbelegung
;*    ---------------------------------- 
;*    PORTA: 
;*        1 
;*        2 
;*        3 
;*        4 
;*    PORTB: 
;*        1 
;*        2 
;*        3 
;*        4 
;*        5 
;*        6 
;*        7 
;*    PORTC: 
;*        1 
;*        2 PWM-Ausgang 
;*        3 
;*        4 
;*        5 
;*        6 
;*        7 
;*
;**************************************************************
;**********************************************************
	Counter1  			EQU  	H'20'
	Counter2  			EQU  	H'21'
	Counter3  			EQU  	H'22'
	Zahl				EQU		H'23'
	Zahl_2				EQU		H'24'
	ADW_1				EQU		H'25'

; Anfangsinitialisierung

Initialisierung

	bsf		STATUS,RP0
	clrf	TRISB
	clrf	TRISD
		
	bcf		STATUS,RP0
	clrf	PORTC
	clrf	PORTB
;	bsf		PORTB,5
;	bcf		PORTB,4

	

init
	clrf	PORTB
	bsf		PORTB,4
	
; Vorteiler 16:1 und Timer2 einschalten
    BsF    T2CON,T2CKPS1  ; Vorteiler 16:1
    bcf		T2CON,T2CKPS0
	BSF    T2CON,TMR2ON   ; Timer2 ein

; Frequenz auf 10 kHz einstellen
    BSF    STATUS,RP0     ; Bank1
    MOVLW  D'90'
    MOVWF  PR2            ; 2,5 kHz
    BCF    STATUS,RP0     ; Bank1

; Tastverhältnis auf 50% einstellen
    MOVLW  D'47'	;62
    MOVWF  CCPR1L         ; 50% von 124

; RC2/CCP1 auf Ausgang stellen
    BSF    STATUS,RP0     ; Bank1
    BCF    TRISC, 2       ; RC2: output=0
    BCF    STATUS,RP0     ; Bank 0

; PWM MODE mit CCP1 initialisieren
    CLRF   CCP1CON        ; CCP1-Modus aus
    BSF    CCP1CON,CCP1M3 ; CCP1-Modus PWM-Mode
    BSF    CCP1CON,CCP1M2

loop

	
; ADC-Vorbereitungen:
; ADC speed für (fosc/32) MHz einstellen  
	bsf     ADCON0, 7      ; ADCS1=1
	bcf     ADCON0, 6      ; ADCS0=0
; ADC einschalten
	bsf     ADCON0, 0      ; ADON=1


  	clrf	ADW_1
	bcf     ADCON0, 5      
	bcf     ADCON0, 4      
	bcf     ADCON0, 3      
    ;call	Verzögerung_1s
	bsf     ADCON0, 2 

warte_auf_ADW:    

	btfsc   ADCON0, 2      
	goto    warte_auf_ADW 
    movf    ADRESH,W      
    movwf   ADW_1
	movlw	D'100'
	subwf	ADW_1,W
	btfsc	STATUS,C
	goto	Signal
 	
	

goto	loop

Signal

	clrf	PORTB
	bsf		PORTB,5
	
; Vorteiler 16:1 und Timer2 einschalten
    BsF    T2CON,T2CKPS1  ; Vorteiler 16:1
    bcf		T2CON,T2CKPS0
	BSF    T2CON,TMR2ON   ; Timer2 ein

; Frequenz auf 10 kHz einstellen
    BSF    STATUS,RP0     ; Bank1
    MOVLW  D'90'
    MOVWF  PR2            ; 2,5 kHz
    BCF    STATUS,RP0     ; Bank1

; Tastverhältnis auf 50% einstellen
    MOVLW  D'62'	;62
    MOVWF  CCPR1L         ; 50% von 124

; RC2/CCP1 auf Ausgang stellen
    BSF    STATUS,RP0     ; Bank1
    BCF    TRISC, 2       ; RC2: output=0
    BCF    STATUS,RP0     ; Bank 0

; PWM MODE mit CCP1 initialisieren
    CLRF   CCP1CON        ; CCP1-Modus aus
    BSF    CCP1CON,CCP1M3 ; CCP1-Modus PWM-Mode
    BSF    CCP1CON,CCP1M2

loop2

	
; ADC-Vorbereitungen:
; ADC speed für (fosc/32) MHz einstellen  
	bsf     ADCON0, 7      ; ADCS1=1
	bcf     ADCON0, 6      ; ADCS0=0
; ADC einschalten
	bsf     ADCON0, 0      ; ADON=1

  	clrf	ADW_1
	bcf     ADCON0, 5      
	bcf     ADCON0, 4      
	bcf     ADCON0, 3      
    ;call	Verzögerung_1s
	bsf     ADCON0, 2 

warte_auf_ADW2:    

	btfsc   ADCON0, 2      
	goto    warte_auf_ADW 
    movf    ADRESH,W      
    movwf   ADW_1

	movlw	D'100'
	subwf	ADW_1,W
	btfsc	STATUS,C
	goto	init
 	
	

goto	loop2



	#include "Verz\Verz_a.inc"


end