hallo leute,
ich habe ein Programm geschrieben, mit dem will ich ein Takt über Poti erzeugen, aber leider hat es nicht funktionnier ich weiß nicht ob das an meinem Hardware liegt oder oder an dem programm: hier ist das Programm:

Code:
.include "m88def.inc"

; Anschlüße Port B
; PB0   Drehichtung
; PB1   Enable
; PD5 Takt
; PB4,PB5 sind Schalter
; Alle Anderen nicht belegt.

.def ADClow=r6
.def ADChigh=r7
.def rlow=r8
.def temp=r16        ;;temporäres Register (initialisierung, PortAusgabe)
.def temp2=r17
.def temp3=r18





                                                                


   
   






;Registerzuweisung-------------------------------------------------------


;Interrupt Vektor Tabelle


    rjmp RESET ; PCINT0 Handler
.org 0x003
	rjmp Reset; PCINT0_7
    rjmp RESET ; PCINT1 Handler
    rjmp RESET ;PCINT2 ; PCINT2 Handler
    rjmp RESET ;WDT ; Watchdog Timeout Handler
    rjmp RESET ;TIM2_COMPA ; Timer2 CompareA Handler
    rjmp RESET ;TIM2_COMPB ; Timer2 CompareB Handler
    rjmp RESET ;TIM2_OVF ; Timer2 Overflow Handler
    rjmp RESET ;TIM1_CAPT ; Timer1 Capture Handler
    rjmp RESET ;TIM1_COMPA ; Timer1 CompareA Handler
    rjmp RESET ;TIM1_COMPB ; Timer1 CompareB Handler
    rjmp RESET ;TIM1_OVF ; Timer1 Overflow Handler
    rjmp RESET ;TIM0_COMPA ; Timer0 CompareA Handler
    rjmp RESET ;TIM0_COMPB ; Timer0 CompareB Handler
    rjmp RESET ;TIM0_OVF ; Timer0 Overflow Handler
    rjmp RESET ;SPI_STC ; SPI Transfer Complete Handler
    rjmp RESET ;USART0_RXC ; USART0 RX Complete Handler
    rjmp RESET ;USART0_UDRE ; USART0,UDR Empty Handler
    rjmp RESET ;USART0_TXC ; USART0 TX Complete Handler
    rjmp RESET ;ADC_CP ; ADC Conversion Complete Handler
    rjmp RESET ;EE_RDY ; EEprom Ready Handler
    rjmp RESET ;ANA_COMP ; Analog Comparator Handler
    rjmp RESET ;TWI ; 2-Wire Serial Interface Handler
    rjmp RESET ;SPM_RDY ; Store Programm Memory Ready Handler

;------------------------------------------------------------------------
;Initialisierung---------------------------------------------------------
;------------------------------------------------------------------------


reset:
        ; Stackpointer initialisieren
        ldi     temp, LOW(RAMEND)    
        out     SPL, temp
        ldi     temp, HIGH(RAMEND)
        out     SPH, temp

;****************************************************************************
;* Timer0 initialisierung
;****************************************************************************
Tim0_init:
		;* Timer0-Einstellung
		ldi	temp,(1<<com0b1)|(0<<com0b0)|(1<<WGM01)|(1<<WGM00); FastPWM, OC0A-nc
		out	TCCR0A,temp	;..und ausgeben
		ldi	temp,(1<<WGM02)|(0<<CS02)|(0<<CS01)|(1<<CS00)	;Taktvorteiler /64+FastPWM..
		out	TCCR0B,temp	;..aktivieren
		ldi	temp,255
		out	OCR0A,temp	;Maxwert
		ldi	temp,0
		out	OCR0B,temp	;Vergleichswert


 
;portd 5-7 auf Ausgang schalten
        ldi        temp,0b11110000
        out        ddrd,temp
;portb 0-3 auf Ausgang schalten
        ldi        temp,0b00001111
        out        ddrb,temp

		     

;      ADC Kanal und V_ref wählen
   		 ldi  temp,(1<<REFS0)|(0<<REFS1)|(0<<MUX2)|(0<<MUX1)|(0<<MUX0)|(1<<ADLAR)
   		 sts  ADMUX,temp
    ; Digitaleingabepuffer des Pins deaktivieren
  		  ldi  temp,(1<<ADC0D)
 		   sts  DIDR0,temp

    ; ADC aktivieren + starten, VT=32
   		 ldi temp,(1<<ADEN)|(1<<ADSC)|(0<<ADIE)|(1<<AdPS2)|(0<<ADPS1)|(1<ADPS0)
    	sts  ADCSRA,temp



;------------------------------------------------------------------------
;Hauptprogramm-----------------------------------------------------------
;------------------------------------------------------------------------
Main:
    rcall    adc_single
    sts      OCR0b,ADChigh

    sbic    pinb,pb4
    sbi     portb,pb0
    sbis    pinb,pb4
    cbi     portb,pb0

   
    sbic    pinb,pb5
    sbi     portb,pb1
    sbis    pinb,pb5
    cbi     portb,pb1

rjmp main

;------------------------------------------------------------------------
;Hauptprogramm----------------------------------------------------------E
;------------------------------------------------------------------------






;Einen   Wert auslesen

ADC_single:
    rcall    ADC_WAIT_CLEAR
rjmp  ADC_read


;Einen Einzelnen Wert auslesen





;------------------------------------------------------------------------
;ADC aktivieren
ADC_START:



ADC_WAIT_CLEAR:
    ; Warten bis der ADC bereit ist
    lds  temp,ADCSRA
    sbrc temp,ADSC
    rjmp ADC_Wait_Clear
ret
 
ADC_read:
    lds        ADClow, ADCL
    lds        ADChigh, ADCH




ret
Code-Tags verwenden ! (PicNick, Mod)

ich bitte um Hilfe seite 2 Tage habe ich nach Fehler gesucht und trotzdem ohen Erfolg.
danke