private const string DeviceName = "QUAD08";
private const int Axis = 0;
static void Main(string[] args)
{
MccBoard board = new MccBoard(0);
Console.WriteLine(board.BoardName);
CounterMode mode = CounterMode.Encoder | CounterMode.EncoderModeX2 | CounterMode.EncoderModeBit32 | CounterMode.EncoderModeModuloNOn;
ErrorInfo err = board.CConfigScan(Axis, mode, CounterDebounceTime.Debounce500ns, CounterDebounceMode.TriggerAfterStable, CounterEdgeDetection.RisingEdge , CounterTickSize.Tick208pt3ns, 0);
Console.WriteLine(err.Message);
for (int i = 0; i < 500000000; i++)
{
Console.WriteLine("Reseting...");
board.CLoad32(CounterRegister.LoadReg0, 4000);
Thread.Sleep(100);
err = board.CIn32(Axis, out int test);
Console.WriteLine(test.ToString());
Thread.Sleep(100);
err = board.CIn32(Axis, out test);
Console.WriteLine(test.ToString());
Thread.Sleep(100);
err = board.CIn32(Axis, out test);
Console.WriteLine(test.ToString());;
}
}
Here is the test code I'm running, I have not set the max limit Register, only the Load Register...
It Outputs this
Counting up to 4000 then resetting when I set the load Regsiter
When I Remover the CounterMode.EncoderModeModuloNOn The CLoad32() Has no effect on the value read from the encoder
Is setting the counter not allowed when using Countermode.Encoder?