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-Tags verwenden ! (PicNick, Mod)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
ich bitte um Hilfe seite 2 Tage habe ich nach Fehler gesucht und trotzdem ohen Erfolg.
danke







Zitieren

Lesezeichen