Added SenseDebug to check the postion sensor sequencing.
authorGraham <dev@netlinux.org.uk>
Thu, 7 Sep 2017 20:29:02 +0000 (21:29 +0100)
committerGraham <dev@netlinux.org.uk>
Thu, 7 Sep 2017 20:29:02 +0000 (21:29 +0100)
Also removed dead code

UnoBLDC.cpp

index b4fb0f7..6ae0f02 100644 (file)
@@ -69,6 +69,11 @@ static const unsigned char SensePattern[] =
 
 static const unsigned char StepNumber = sizeof (TrinaryStep) / (TRITS + 1);
 
+// Set SENSEDEBUGCOUNT to 0 for disable
+static const unsigned char SENSEDEBUGCOUNT = 18;
+static unsigned char SenseDebugCount = 0;
+static unsigned char SenseDebug[SENSEDEBUGCOUNT];
+
 static int MarkInput = 0;
 static int SpaceInput = 0;
 static unsigned char StepCount = 0;
@@ -167,6 +172,9 @@ void SensorChange()
         DDRB = (D[StepCount] << 3); // set the direction
         PORTB = (P[StepCount] << 3) | 0b111;  // set the bits (including the pullups)
     }
+
+    if (SenseDebugCount < SENSEDEBUGCOUNT)
+        SenseDebug[SenseDebugCount++] = Sense;
 }
 
 void setup ()
@@ -211,17 +219,25 @@ void loop ()
             putchar (' ');
     }
 
-    printf (" MarkInput=%3d SpaceInput=%3d PinInput=", MarkInput, SpaceInput);
+    printf (" MarkInput=%4d SpaceInput=%4d PinInput=", MarkInput, SpaceInput);
 
     for (unsigned char BitCount = 0b100000; BitCount > 0; BitCount >>= 1)
         putchar (((Sense & BitCount) > 0) ? '1' : '0');
 
     printf (" SenseCount=%3d\n", SenseCount);
     
+    for (unsigned char DebugCount = 0; DebugCount < SenseDebugCount; DebugCount++)
+    {
+        for (unsigned char BitCount = 0b100000; BitCount > 0; BitCount >>= 1)
+            putchar (((SenseDebug[DebugCount] & BitCount) > 0) ? '1' : '0');
+                    puts("");
+    }
+
     MarkInput = analogRead (MARKCONTROL);
     SpaceInput = analogRead (SPACECONTROL);
     
     SenseCount = 0;
+    SenseDebugCount = 0;
     
     delay (100);
 }
@@ -231,11 +247,6 @@ void UARTReceive (char Character)
     KeyPress (Character);
 }
 
-/*
-    ISR (PCINT0_vect) pin change interrupt for D8 to D13
-    ISR (PCINT1_vect) pin change interrupt for A0 to A5
-    ISR (PCINT2_vect) pin change interrupt for D0 to D7
-*/
 ISR (PCINT2_vect)
 {
     SensorChange();