Lab 6 code.

Dependencies:   mbed

Fork of WaG by GroupA

Revision:
4:0ed77d8b3e42
Parent:
3:293ff9cb705d
Child:
6:749a691e2abf
--- a/main.cpp	Wed Feb 21 19:03:43 2018 +0000
+++ b/main.cpp	Wed Feb 21 19:47:38 2018 +0000
@@ -21,7 +21,9 @@
 Serial pc(USBTX, USBRX);
 
 bool num_range(char input[5]);
+int convert(int dec);
 char to_command(char input, int place);
+int bcd[4];
 
 int main(void) {
     SS = 1; 
@@ -111,8 +113,8 @@
 
 bool num_range(char input[5]) {
      bool result = true;
-     for (int i = 1; i < 6; i++) {
-        if (i > 4)
+     for (int i = 0; i < 5; i++) {
+        if (i > 3)
             if (input[i] != 0) //checks for number larger than 9999
                 result = false; 
         if (input[i] < 48 or input[i] > 57) //checks for digits outside 0-9
@@ -121,25 +123,30 @@
      return result;
 }
 
-int mod_bcd(int num) {
-    int bcd_arr[4];
-    int place = 4;
-    int bcd = 0;
-    int mult = 1;
-    while (num != 0) {
+void mod_bcd(int num) {
+    int size = 4;
+    int dec_arr[size];
+    int place = 0;
+    while (num != 0) { //converts decimal input to decimal array using %mod
         int val = num % 10;
-        bcd_arr[place] = val;
+        dec_arr[place] = val;
         num = num/10;
+        place++;
     }
-    for (int i = 1; i < 5; i++) {
-        bcd = bcd + bcd_arr[i]*mult;
-        mult = mult * 10;
+    for (int i = 0; i < size; i++) { //converts decimal array to binary array
+        bcd[i] = convert(dec_arr[i]);
     }
-    return bcd;
 }
 
 
 char to_command(char input, int place) {
     
 }
+
+int convert(int dec) {//convert decimal to binary
+    if (dec == 0) //function complete
+        return 0; 
+    else //recursive call until converted
+        return (dec % 2 + 10 * convert(dec / 2)); 
+}
     
\ No newline at end of file