Hallo,
ich bin grad ein bischen am verzweifeln, hoffentlich kann mir hier
jemand weiterhelfen
und zwar versuche ich eine Zeitverzögerung von 625ms, mit Timer 1, per
Interupt steuerung zu basteln
Das ganze soll auf dem 80(C)515 mikrocontroller laufen, der arbeitet mit
12 MHz
Also schreib ich in den 16 Bit Zähler "40535" raus, damit der Timer 25
mal die restlichen 25000 hochzählt. Eigentlich müsste er nach meiner
Rechnung (25 * 25000 = 625000) 25 ms erreichen
Nur beim Testen mit Breakpoints kriege ich bloß 4ms
hier der Code
1 | $include (reg515.inc)
|
2 |
|
3 | Anweisungen:
|
4 | org 0000H
|
5 | ljmp progr
|
6 | org 001BH
|
7 | ljmp timer_1
|
8 | progr:
|
9 | MOV TL1,#57H
|
10 | MOV TH1,#9EH
|
11 | MOV 89H,#20H
|
12 | setb EAL
|
13 | setb ET1
|
14 | setb TR1
|
15 | warten:
|
16 | sjmp warten
|
17 | timer_1:
|
18 | MOV TL1,#57H
|
19 | MOV TH1,#9EH
|
20 | CLR TF1
|
21 | INC R1
|
22 | CJNE R1,#019H,zurueck ;wenn 25 nicht erreicht, springe zu reti
|
23 | clr P0.1
|
24 | zurueck:
|
25 | reti
|