Line 1... |
Line 1... |
1 |
#!/usr/bin/python |
1 |
#!/usr/bin/python |
- |
|
2 |
# |
- |
|
3 |
# Sample of measiring and correct frequency with ACOUNTER02A |
2 |
|
4 |
|
3 |
import time |
5 |
import time |
4 |
import datetime |
6 |
import datetime |
5 |
import sys |
7 |
import sys |
6 |
from pymlab import config |
8 |
from pymlab import config |
7 |
|
9 |
|
8 |
#### Script Arguments ############################################### |
10 |
#### Script Arguments ############################################### |
9 |
|
11 |
|
10 |
if len(sys.argv) != 2: |
12 |
if (len(sys.argv) > 3) or (len(sys.argv) < 2): |
11 |
sys.stderr.write("Invalid number of arguments.\n") |
13 |
sys.stderr.write("Invalid number of arguments.\n") |
12 |
sys.stderr.write("Usage: %s PORT ADDRESS\n" % (sys.argv[0], )) |
14 |
sys.stderr.write("Usage: %s PORT_ADDRESS [REQUIERED_MHz]\n" % (sys.argv[0], )) |
13 |
sys.exit(1) |
15 |
sys.exit(1) |
14 |
|
16 |
|
15 |
port = eval(sys.argv[1]) |
17 |
port = eval(sys.argv[1]) |
16 |
#### Sensor Configuration ########################################### |
18 |
#### Sensor Configuration ########################################### |
17 |
|
19 |
|
Line 32... |
Line 34... |
32 |
rfreq = fgen.get_rfreq() |
34 |
rfreq = fgen.get_rfreq() |
33 |
hsdiv = fgen.get_hs_div() |
35 |
hsdiv = fgen.get_hs_div() |
34 |
n1 = fgen.get_n1_div() |
36 |
n1 = fgen.get_n1_div() |
35 |
fdco = 0 |
37 |
fdco = 0 |
36 |
fxtal = 0 |
38 |
fxtal = 0 |
- |
|
39 |
regs = [0, 0, 0] |
37 |
|
40 |
|
38 |
fgen.set_rfreq(0x2D1E127AD) |
- |
|
39 |
fgen.set_hs_div(4) |
- |
|
40 |
fgen.set_n1_div(8) |
- |
|
41 |
|
41 |
|
42 |
#### Data Logging ################################################### |
42 |
#### Data Logging ################################################### |
43 |
|
43 |
|
44 |
try: |
44 |
try: |
45 |
with open("temperature.log", "a") as f: |
45 |
with open("frequency.log", "a") as f: |
46 |
while True: |
46 |
while True: |
47 |
now = datetime.datetime.now() |
47 |
now = datetime.datetime.now() |
48 |
if (now.second == 15) or (now.second == 35) or (now.second == 55): |
48 |
if (now.second == 15) or (now.second == 35) or (now.second == 55): |
49 |
frequency = fcount.get_freq() |
49 |
frequency = fcount.get_freq() |
- |
|
50 |
if (len(sys.argv) == 3): |
- |
|
51 |
regs = fgen.set_freq(frequency/1e6, float(eval(sys.argv[2]))) |
50 |
now = datetime.datetime.now() |
52 |
now = datetime.datetime.now() |
51 |
|
53 |
|
52 |
rfreq = fgen.get_rfreq() |
54 |
rfreq = fgen.get_rfreq() |
53 |
hsdiv = fgen.get_hs_div() |
55 |
hsdiv = fgen.get_hs_div() |
54 |
n1 = fgen.get_n1_div() |
56 |
n1 = fgen.get_n1_div() |
55 |
fdco = (frequency/1000000) * hsdiv * n1 |
57 |
fdco = (frequency/1e6) * hsdiv * n1 |
56 |
fxtal = fdco / rfreq |
58 |
fxtal = fdco / rfreq |
57 |
|
59 |
|
58 |
sys.stdout.write("frequency: " + str(frequency) + " Hz Time: " + str(now.second)) |
60 |
sys.stdout.write("frequency: " + str(frequency) + " Hz Time: " + str(now.second)) |
59 |
sys.stdout.write(" RFREQ: " + str(rfreq) + " HSDIV: " + str(hsdiv) + " N1: " + str(n1)) |
61 |
sys.stdout.write(" RFREQ: " + str(rfreq) + " HSDIV: " + str(hsdiv) + " N1: " + str(n1)) |
60 |
sys.stdout.write(" fdco: " + str(fdco) + " fxtal: " + str(fxtal) + "\r\n") |
62 |
sys.stdout.write(" fdco: " + str(fdco) + " fxtal: " + str(fxtal) + "\r") |
61 |
f.write("%d\t%s\t%.3f\n" % (time.time(), datetime.datetime.now().isoformat(), frequency)) |
63 |
f.write("%d\t%s\t%.3f\n" % (time.time(), datetime.datetime.now().isoformat(), frequency)) |
62 |
|
64 |
|
63 |
sys.stdout.flush() |
65 |
sys.stdout.flush() |
64 |
time.sleep(1) |
66 |
time.sleep(0.9) |
65 |
except KeyboardInterrupt: |
67 |
except KeyboardInterrupt: |
66 |
sys.stdout.write("\r\n") |
68 |
sys.stdout.write("\r\n") |
67 |
sys.exit(0) |
69 |
sys.exit(0) |
68 |
f.close() |
70 |
f.close() |