blob: 02f8384bca2248d86a03aea0ef6d9b280351bc15 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
using System;
using System.Text;
using System.Linq;
using System.Drawing;
using System.Diagnostics;
using System.Windows.Forms;
using System.Threading;
using System.Threading.Tasks;
using System.Collections.Generic;
using Tango.PMR.Stubs;
using Tango.Stubs;
const UInt32 Freq = 29166667;//FPGA Freq
const UInt32 F1_Tacho_reg9 = 0x1E2;//Time of Tacho / No of clk in one cycle
const UInt32 F1_gpo_cnt_A_reg = 0x3B0;// how many pulses to count
//const Int32 F1_Prescaler1_reg5 = 0x3E8; //OLD FPGA 05.022019
const UInt32 F1_Prescaler1_reg6 = 0x3EA; //New FPGA
const UInt32 CNT = 4;//bigger number for resolution
const UInt32 Presc = 2;//Lower number for resolution
UInt32 temp;
public void OnExecute(StubManager stubManager)
{
stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + F1_Prescaler1_reg6, Presc);//for new FPGA use reg6!!
var response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_Prescaler1_reg6);//for new FPGA use reg6!!!
response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg);
stubManager.Run<StubFpgaWriteRegResponse>("StubFpgaWriteRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg, CNT);
response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_gpo_cnt_A_reg);
for(int i =0;i<1000;i++)
{
response = stubManager.Run<StubFpgaReadRegResponse>("StubFpgaReadRegRequest" ,0x60000000 + F1_Tacho_reg9);
temp = (Freq * CNT) /((UInt32)response.Value * Presc);
stubManager.Write(temp);
stubManager.Write(" Hz, ");
stubManager.WriteHex((response.Value & 0xffff),4);
stubManager.WriteLine("");
Thread.Sleep(100); //Sleep for 100 milli.
}
}
|