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