Rev 3498 Rev 3502
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()