Notifications
Clear all

dBm-Anzeige mit Nachkommastellen - FINAL

1 Posts
1 Users
0 Likes
4,271 Views
(@moderator)
Noble Member Admin
Joined: 14 years ago
Posts: 1044
Topic starter  

Mit Hilfe des Filemanagers der LCS-Software können Sie sehr einfach eine dBm-Anzeige mit bis zu drei Nachkomastellen programieren.
Rufen Sie das Programm "scanprog" im Verzeichnis "Spezial" im Filemanager auf:

 LOADSET PEAK1FREQ
 STOREVAR 05h
 LOADSET SPECDISP
 JUMPNZ LABEL-1
 LOADSET PEAK1POW
 LOADSET PEAK1FREQ
 ACALL PROG-0
 LOADSET PEAK2POW
 LOADSET PEAK2FREQ
 ACALL PROG-0
 MAX
 LOADSET PEAK3POW
 LOADSET PEAK3FREQ
 ACALL PROG-0
 MAX
 LOADVAR 01h
 JUMPZ LABEL-2
 LOADVAR 01h
 LDSHCO 02h
 JUMPGE LABEL-3
 PPIXTEXT 00h, 0000h, "ICNIRP"
 JUMP LABEL-4
LABEL-3:
 LOADVAR 01h
 LDSHCO 01h
 SUB
 PPIXDBL 00h, 0000h, "Salzb#"
 LDSHCO 64h
 LDSHCO 04h
 LOADVAR 01h
 SUB
 POW
 LDSHCO 0Ah
 DIV
 LDSHCO 01h
 MAX
 DIV
LABEL-4:
 DUP
 PPIXBAR 02h
 LDCONST 100
 MUL
 PPIXDBL 00h, 0100h, "###.##"
LABEL-1:
 AJUMP LABEL-5
LABEL-2:
 PPIXTEXT 00h, 0001h, "W/m"
 DUP
 LOG10
 LDSHCO 00h
 MAX
 LDSHCO 06h
 DIV
 PPIXBAR 02h
 DUP
 LDSHCO 01h
 JUMPLT LABEL-6
 DUP
 LDCONST 1000
 JUMPGE LABEL-7
 PPIXTEXT 00h, 0000h, "u"
 JUMP LABEL-8
LABEL-7:
 LDCONST 1000
 DIV
 DUP
 LDCONST 1000
 JUMPGE LABEL-9
 PPIXTEXT 00h, 0000h, "m"
 JUMP LABEL-8
LABEL-9:
 LDCONST 1000
 DIV
 PPIXTEXT 00h, 0000h, " "
 JUMP LABEL-8
LABEL-6:
 LDCONST 1000
 MUL
 DUP
 LDSHCO 01h
 JUMPLT LABEL-10
 PPIXTEXT 00h, 0000h, "n"
 JUMP LABEL-8
LABEL-10:
 LDCONST 1000
 MUL
 PPIXTEXT 00h, 0000h, "p"
LABEL-8:
 PPIXDBL 00h, 0100h, "###.##"
LABEL-5:
 LOADVAR 03h
 JUMPNZ LABEL-11
 STOP
LABEL-11:
 LDCONST 170
 CHAIN
PROG-0:
 STOREVAR 02h
 LDSHCO 0Ah
 SWAP
 LOADSET 97
 SUB
 LDSHCO 0Ah
 DIV
 POW
 LDCONST 1000
 DIV
 LOADVAR 01h
 LDSHCO 01h
 JUMPEQ LABEL-12
 LOADVAR 02h
 SQUARE
 MUL
 LDCONST 139.8
 MUL
 JUMP LABEL-13
LABEL-12:
 SQRT
 LOADVAR 02h
 MUL
 LDCONST 2295
 MUL
 LDCONST 10000
 DIV
 LOADVAR 02h
 LDCONST 2000
 JUMPGE LABEL-14
 LOADVAR 02h
 LDCONST 400
 JUMPLT LABEL-15
 LOADVAR 02h
 SQRT
 LDCONST 1.375
 MUL
 JUMP LABEL-16
LABEL-14:
 LDCONST 61
 JUMP LABEL-16
LABEL-15:
 LDCONST 28
LABEL-16:
 DIV
LABEL-13:
 RET
 STOP

Fügen Sie nun direakt am Anfang folgende Codezeilen ein:

LDCONST 301
 CHAIN

(Hierdurch wird nach jedem Sweep das Unterprogramm 301 aufgerufen und die dortigen Befehle ausgeführt)
Das geänderte "scanprog" sollte dann wie folgt aussehen:

LDCONST 301
 CHAIN
 LOADSET PEAK1FREQ
 STOREVAR 05h
 LOADSET SPECDISP
 JUMPNZ LABEL-1
 LOADSET PEAK1POW
 LOADSET PEAK1FREQ
 ACALL PROG-0
 LOADSET PEAK2POW
 LOADSET PEAK2FREQ
 ACALL PROG-0
 MAX
 LOADSET PEAK3POW
 LOADSET PEAK3FREQ
 ACALL PROG-0
 MAX
 LOADVAR 01h
 JUMPZ LABEL-2
 LOADVAR 01h
 LDSHCO 02h
 JUMPGE LABEL-3
 PPIXTEXT 00h, 0000h, "ICNIRP"
 JUMP LABEL-4
LABEL-3:
 LOADVAR 01h
 LDSHCO 01h
 SUB
 PPIXDBL 00h, 0000h, "Salzb#"
 LDSHCO 64h
 LDSHCO 04h
 LOADVAR 01h
 SUB
 POW
 LDSHCO 0Ah
 DIV
 LDSHCO 01h
 MAX
 DIV
LABEL-4:
 DUP
 PPIXBAR 02h
 LDCONST 100
 MUL
 PPIXDBL 00h, 0100h, "###.##"
LABEL-1:
 AJUMP LABEL-5
LABEL-2:
 PPIXTEXT 00h, 0001h, "W/m"
 DUP
 LOG10
 LDSHCO 00h
 MAX
 LDSHCO 06h
 DIV
 PPIXBAR 02h
 DUP
 LDSHCO 01h
 JUMPLT LABEL-6
 DUP
 LDCONST 1000
 JUMPGE LABEL-7
 PPIXTEXT 00h, 0000h, "u"
 JUMP LABEL-8
LABEL-7:
 LDCONST 1000
 DIV
 DUP
 LDCONST 1000
 JUMPGE LABEL-9
 PPIXTEXT 00h, 0000h, "m"
 JUMP LABEL-8
LABEL-9:
 LDCONST 1000
 DIV
 PPIXTEXT 00h, 0000h, " "
 JUMP LABEL-8
LABEL-6:
 LDCONST 1000
 MUL
 DUP
 LDSHCO 01h
 JUMPLT LABEL-10
 PPIXTEXT 00h, 0000h, "n"
 JUMP LABEL-8
LABEL-10:
 LDCONST 1000
 MUL
 PPIXTEXT 00h, 0000h, "p"
LABEL-8:
 PPIXDBL 00h, 0100h, "###.##"
LABEL-5:
 LOADVAR 03h
 JUMPNZ LABEL-11
 STOP
LABEL-11:
 LDCONST 170
 CHAIN
PROG-0:
 STOREVAR 02h
 LDSHCO 0Ah
 SWAP
 LOADSET 97
 SUB
 LDSHCO 0Ah
 DIV
 POW
 LDCONST 1000
 DIV
 LOADVAR 01h
 LDSHCO 01h
 JUMPEQ LABEL-12
 LOADVAR 02h
 SQUARE
 MUL
 LDCONST 139.8
 MUL
 JUMP LABEL-13
LABEL-12:
 SQRT
 LOADVAR 02h
 MUL
 LDCONST 2295
 MUL
 LDCONST 10000
 DIV
 LOADVAR 02h
 LDCONST 2000
 JUMPGE LABEL-14
 LOADVAR 02h
 LDCONST 400
 JUMPLT LABEL-15
 LOADVAR 02h
 SQRT
 LDCONST 1.375
 MUL
 JUMP LABEL-16
LABEL-14:
 LDCONST 61
 JUMP LABEL-16
LABEL-15:
 LDCONST 28
LABEL-16:
 DIV
LABEL-13:
 RET
 STOP

Betätigen Sie jetzt den Button "Übersetzen" und dann "Schreiben"

Nun müssen Sie noch das neue Unterprogramm 301 erstellen.
Klicken Sie dazu auf "Neu".
Nun geben Sie bei "Id" 301 und bei "Beschreibung" dBm-Boost ein.
Betätigen Sie jetzt den Button "Übersetzen" und dann "Schreiben"
Das Programm 301 wurde erstellt.
Fügen Sie jetzt in das Programm 301 folgenden Code ein:

LOADSET PEAK1POW
 PPIXDBL 00h, 0000h, "-##.##"
 STOP

Betätigen Sie jetzt den Button "Übersetzen" und dann "Schreiben"

Nun zur Funktion:
Im Sweepfenster wird jetzt nach jedem Sweep in der oberen Zeile die neue dBm-Anzeige eingeblendet.
Der Ausdruck "-##.##" gibt dabei die Auflösung der dBm-Anzeige an, hier also maximal -99.99dBm.
Wenn Sie den Ausdruck auf "-###.#" ändern, wäre die maximale Anzeige -999.9dBm und bei "##.###" maximal 99.999dBm (dann allerdings ohne Vorzeichen).

Alternativ können Sie auch zusätzlich noch den Display-Refresh des Sweepfensters abschalten, dies führt zu einer "ruhigen" Anzeige, schaltet aber natürlich die Spektrum-Anzeige ab. Ändern Sie dazu das Programm 301 wie folgt ab:

 LDSHCO 0
 STORESET SPECDISP 
 LOADSET PEAK1POW
 PPIXDBL 00h, 0000h, "-##.##"
 STOP

Betätigen Sie jetzt wieder den Button "Übersetzen" und dann "Schreiben"

Zusätzlich können Sie auch einen Grenzwertbalken hinzufügen. So sind Pegelausschläge noch besser zu erkennen.
Ändern Sie dazu das Programm 301 wie folgt ab:

LDSHCO 00h
 STORESET SPECDISP
 LOADSET PEAK1POW
 PPIXDBL 00h, 0000h, "-##.##"
 LOADSET PEAK1POW
 LDCONST 100
 ADD
 LDCONST 100
 DIV
 PPIXBAR 01h
 STOP

Betätigen Sie jetzt wieder den Button "Übersetzen" und dann "Schreiben"
Der Balken bewegt sich nun von "leer bei -100dBm bis "voll" bei 0dBm (100dB Dynamik).

Im Power-Meter Modus sollten Sie aber die Dynamik verkleinern, da der unterste Pegel ja bereits bei ca. -50dBm liegt. Der Code könnte dann wie folgt aussehen:

LDSHCO 00h
 STORESET SPECDISP
 LOADSET PEAK1POW
 PPIXDBL 00h, 0000h, "-##.##"
 LOADSET PEAK1POW
 LDCONST 50
 ADD
 LDCONST 100
 DIV
 PPIXBAR 01h
 STOP

Betätigen Sie jetzt wieder den Button "Übersetzen" und dann "Schreiben"
Der Balken bewegt sich nun von "leer bei -50dBm bis "voll" bei 0dBm (50dB Dynamik).

Durch einen Factory-Reset können Sie die ursprüngliche Funktion natürlich jedezeit wieder herstellen.

Snip


   
Quote
Share: