Hallo allerseits,
ich sitze gerade am programmieren mit meinem 89S51 und habe einen
Rechteckgenerator programmiert:
1 | ORG 0h
|
2 | AJMP 100h
|
3 | ORG 100h
|
4 | CLR tr0
|
5 | MOV TMOD, #01h
|
6 | m2: MOV R0, #07ah
|
7 | haupt: CLR TF0
|
8 | MOV TH0, #000h
|
9 | MOV TL0, #000h
|
10 | SETB TR0
|
11 | loop: JNB TF0, loop
|
12 | m1: DJNZ R0, haupt
|
13 | CPL P2.0
|
14 | AJMP m2
|
Ich komme nicht ganz klar mit dem berechnen der Impuls- und Pausendauer.
Habe einen 24MHz-Quarz. Ich denke folgerndermaßen:
F=24*10^6/12 = 2*10^6
T= 1/f = 1/2*10^6 = 0,5*10^-6s
bei 16-bit timer müsste das doch 32768*0,5*10^-6 = 0,016384s sein pro
hochzählen?! Und das mal 7A(122) von R0 müsste doch ca.2s ergeben? Habe
ich da ein denkfehler? In der Realität komme ich auf 12s!
Wo habe ich meinen Denkfehler?
Danke schon mal für Hilfe.
Gruß
ramon