aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Stubs Collection/stubs/Scripts/NewSpeedSensor.cs
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.
	}
}