servotester.asm
1 | .include "tn13def.inc"
| 2 |
| 3 | ;servo in die Mitte
| 4 |
| 5 | rjmp A
| 6 | A:
| 7 | sbi ddrb,3 ;Datenrichtung
| 8 | rcall AdcInit
| 9 | S:
| 10 | cbi portb,3
| 11 | rcall Warten
| 12 | sbi portb,3
| 13 | rcall Warten3
| 14 | rjmp S
| 15 |
| 16 |
| 17 | Warten:
| 18 | Ldi r18,32 ;1
| 19 | Warten1:
| 20 | Ldi r17,250 ;95
| 21 | Warten2:
| 22 | dec r17 ;24035
| 23 | brne Warten2 ;47975
| 24 | dec r18 ;95
| 25 | brne Warten1 ;189
| 26 | ret ;4
| 27 |
| 28 | Warten3:
| 29 | ldi r16,2
| 30 | rcall RdADC
| 31 | Warten4:
| 32 | Ldi r17,3
| 33 | Warten5:
| 34 | dec r17
| 35 | brne Warten5
| 36 | dec r16
| 37 | brne Warten4
| 38 | nop
| 39 | nop
| 40 | nop
| 41 | nop
| 42 | ret
| 43 | AdcInit:
| 44 | ldi r16,3 ;Clock / 4
| 45 | out ADCSRA,r16
| 46 | sbi ADCSRA,ADEN ;AD einschalten
| 47 | ret
| 48 |
| 49 | RdADC:
| 50 | out ADMUX,r16
| 51 | sbi ADMUX,ADLAR ;Left adjust
| 52 | sbi ADCSRA,ADSC ;Wandlung starten
| 53 | ADrdy:
| 54 | sbic ADCSRA,ADSC
| 55 | rjmp ADrdy
| 56 | sbi ADCSRA,ADSC
| 57 | ADrdyb:
| 58 | sbic ADCSRA,ADSC
| 59 | rjmp ADrdyb
| 60 | in r16,ADCH
| 61 | ret
|
|