dieses "fast" bezieht sich darauf daß ich mein Programm im Assembler geschrieben habe![]()
Hier ein Ausschnitt:
Ich habe diesen hierCode:.org 0x0000 rjmp reset .org INT0addr rjmp encode .org OVF0addr rjmp time0 .... .... reset: ldi tmp1,HIGH(RAMEND) out SPH,tmp1 ldi tmp1,LOW(RAMEND) out SPL,tmp1 ldi tmp1,(1<<encoder1)|(1<<encoder2) ; Pullups für den Encoder out encoderport,tmp1 ; dito ldi tmp1,(1<<PB1)|(1<<PB2) out DDRB,tmp1 ldi tmp1,(1<<ISC01) ; fallende Flanke am INT0 out MCUCR,tmp1 ; erzeugt einen Interrupt ldi tmp1,(1<<INT0) ; Externen Interrupt am PD2 erlauben out GICR,tmp1 ... ... encode: in tmpi1,SREG push tmpi1 ldi tmpi1,0x00 ldi tmpi2,0x05 in tmpiL,OCR1BL in tmpiH,OCR1BH sbic encoderpin,encoder2 rjmp encode2 sub tmpiL,tmpi2 sbc tmpiH,tmpi1 rjmp encode_end encode2: add tmpiL,tmpi2 adc tmpiH,tmpi1 encode_end: out OCR1BH,tmpiH out OCR1BL,tmpiL pop tmpi1 out SREG,tmpi1 reti
Gruß Sebastian







Zitieren

Lesezeichen