Reorganise code
authorGraham <dev@netlinux.org.uk>
Wed, 6 Sep 2017 20:26:46 +0000 (21:26 +0100)
committerGraham <dev@netlinux.org.uk>
Wed, 6 Sep 2017 20:26:46 +0000 (21:26 +0100)
UnoBLDC.cpp

index 163d9b3..2c345a3 100644 (file)
@@ -1,24 +1,19 @@
 #include "arduino.h"
 
 #define STEP 12
-#define TRITS 3
 #define SENSEINTERRUPTS
 
+static const unsigned char TRITS = 3;
+
 static const int MARKCONTROL = A0;
 static const int SPACECONTROL = A1;
 static const unsigned long DELAY = 100;
 
-
-static int MarkInput = 0;
-static int SpaceInput = 0;
-static unsigned char StepCount = 0;
-static bool Run = true;
-static bool Single = false;
-static bool Manual = false;
+static const unsigned char SENSORMASK = 0b11111100;
 
 #if STEP == 6
 
-static char TrinaryStep[][TRITS + 1] = {
+static const char TrinaryStep[][TRITS + 1] = {
     " -+",
     "- +",
     "-+ ",
@@ -29,7 +24,7 @@ static char TrinaryStep[][TRITS + 1] = {
 
 #elif STEP == 12
 
-static char TrinaryStep[][TRITS + 1] = {
+static const char TrinaryStep[][TRITS + 1] = {
     " -+",
     "--+",
     "- +",
@@ -48,6 +43,17 @@ static char TrinaryStep[][TRITS + 1] = {
 
 static const unsigned char StepNumber = sizeof (TrinaryStep) / (TRITS + 1);
 
+static int MarkInput = 0;
+static int SpaceInput = 0;
+static unsigned char StepCount = 0;
+static bool Run = true;
+static bool Single = false;
+static bool Manual = false;
+
+static unsigned char Sense = 0;
+static bool Blank = false;
+static unsigned int SenseCount = 0;
+
 static unsigned char P[StepNumber];
 static unsigned char D[StepNumber];
 
@@ -99,44 +105,6 @@ void KeyPress (const char Character)
     }
 }
 
-void UARTReceive (char Character)
-{
-    KeyPress (Character);
-}
-
-static const unsigned char SENSORMASK = 0b11111100;
-
-void setup ()
-{
-    puts ("Grahams Simple Trinary Test, " __DATE__ " (" __TIME__ ")");
-
-    // Convert trinary to BCT
-    for (unsigned char count = 0; count < StepNumber; count++)
-    {
-        P[count] = 0;
-        D[count] = 0;
-
-        for (unsigned char trit = 0; trit < TRITS; trit++)
-        {
-            P[count] |= ((TrinaryStep[count][trit] == '+') ? (1 << (TRITS - trit - 1)) : 0);
-            D[count] |= ((TrinaryStep[count][trit] != ' ') ? (1 << (TRITS - trit - 1)) : 0);
-        }
-    }
-
-    DDRD  &= ~0b11111100;       // set 2-8 input
-    PORTD |=  0b11111100;       // 2-8 add pullup
-
-    DDRB  = 0b00000000;         // set 8-13 off (input)
-    PORTB = 0b00000111;        // set 11-13 low (no pullup) 8-10 high (add pullup)
-#ifdef SENSEINTERRUPTS
-// PORTD pin 2-7
-    PCICR |= (1 << PCIE2);
-    PCMSK2 |= SENSORMASK;
-    
-    sei();
-#endif
-}
-
 void Gap (const int CONTROL, int &Input)
 {
     Input = analogRead (CONTROL);
@@ -144,10 +112,6 @@ void Gap (const int CONTROL, int &Input)
     for (volatile unsigned long intCount = DELAY * Input; intCount > 0; intCount--);
 }
 
-static unsigned char Sense = 0;
-static bool Blank = false;
-static unsigned int SenseCount = 0;
-
 void SensorChange()
 {
     SenseCount++;
@@ -231,6 +195,37 @@ void SensorChange()
 #endif
 }
 
+void setup ()
+{
+    puts ("Grahams Simple Trinary Test, " __DATE__ " (" __TIME__ ")");
+
+    // Convert trinary to BCT
+    for (unsigned char count = 0; count < StepNumber; count++)
+    {
+        P[count] = 0;
+        D[count] = 0;
+
+        for (unsigned char trit = 0; trit < TRITS; trit++)
+        {
+            P[count] |= ((TrinaryStep[count][trit] == '+') ? (1 << (TRITS - trit - 1)) : 0);
+            D[count] |= ((TrinaryStep[count][trit] != ' ') ? (1 << (TRITS - trit - 1)) : 0);
+        }
+    }
+
+    DDRD  &= ~0b11111100;       // set 2-8 input
+    PORTD |=  0b11111100;       // 2-8 add pullup
+
+    DDRB  = 0b00000000;         // set 8-13 off (input)
+    PORTB = 0b00000111;        // set 11-13 low (no pullup) 8-10 high (add pullup)
+#ifdef SENSEINTERRUPTS
+// PORTD pin 2-7
+    PCICR |= (1 << PCIE2);
+    PCMSK2 |= SENSORMASK;
+
+    sei();
+#endif
+}
+
 void loop ()
 {
 #ifdef SENSEINTERRUPTS
@@ -374,6 +369,11 @@ void loop ()
 #endif
 }
 
+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