1 | ;
|
2 | ; Definitionsdatei für Atmega8
|
3 | ;
|
4 | .NOLIST
|
5 | .include "m8def.inc"
|
6 | .LIST
|
7 |
|
8 | ;
|
9 | ; Register Definition
|
10 | ;
|
11 |
|
12 | .DEF regA = R24
|
13 | .DEF regB = R25
|
14 | .DEF tmp = R16
|
15 |
|
16 | .equ c1 = 1 ; Bestimmt die Blinkfrequenz
|
17 | ldi tmp,1<<DDB0 | 1<<DDB1 ; Portbit ist Ausgang
|
18 | out DDRB,tmp
|
19 | clr tmp
|
20 |
|
21 | Loop:
|
22 | sbi PORTB,1 ; Portbit auf high
|
23 | cbi PORTB,0
|
24 | ldi regB, HIGH(c1)
|
25 | ldi regA, LOW(c1)
|
26 |
|
27 | Loop1:
|
28 | nop
|
29 | nop
|
30 | nop
|
31 | nop
|
32 | nop
|
33 | sbiw regA,1
|
34 | brne Loop1
|
35 | cbi PORTB,1 ; Portbit auf low
|
36 | sbi PORTB,0 ; Protbit0 auf high
|
37 | ldi regB, HIGH(c1)
|
38 | ldi regA, LOW(c1)
|
39 |
|
40 | Loop2:
|
41 | nop
|
42 | nop
|
43 | nop
|
44 | nop
|
45 | nop
|
46 | sbiw regA,1
|
47 | brne Loop2
|
48 | rjmp Loop
|
Bin gerade daran dieses Programm zu Simulieren. Mir ist aufgefallen das
in Register25 gar kein Wert geladen wird. Warum wird dieser dann
Deklariert?
( hier regB )
bei
müsste dort ein Wert geladen werden.
HIGH ist dazu nirgend wo deklariert ob dies nun 1 oder 0 ist. Wenn
natürlich hier 0b00000000 geladen wir ist verständlich warum ich nichts
sehe. Aber dann währe ja regB gar nicht notwendig.