Ver código fonte

Fixed image calulation

Per Mårtensson 3 anos atrás
pai
commit
308c1ce67b
2 arquivos alterados com 7 adições e 12 exclusões
  1. 3 8
      sw/src/main.cpp
  2. 4 4
      sw/src/sdcard.cpp

+ 3 - 8
sw/src/main.cpp

@@ -96,7 +96,7 @@ static const uint32_t scsiDbInputOutputPullAnd_PEREG  = 0b0000000000000000010101
 
 static ArduinoOutStream cout(Serial);
 // HDD image
-uint16_t imageSelect = 0;
+uint8_t imageSelect = 0;
 uint16_t board_rev = 0;
 HDDIMG  img[NUM_SCSIID][NUM_SCSILUN]; // Maximum number
 
@@ -303,7 +303,7 @@ void setup()
   //Setup GPIO
   gpioInit();
 
-  board_rev = digitalRead(BOARD_REV_PIN0) | digitalRead(BOARD_REV_PIN1) << 1 | digitalRead(BOARD_REV_PIN2) << 2;
+  board_rev = digitalRead(BOARD_REV_PIN0) << 1 | digitalRead(BOARD_REV_PIN1) << 2 | digitalRead(BOARD_REV_PIN2) << 3 | 0x01;
 
   SCSI_BUFFERS_IN() ;
 
@@ -315,6 +315,7 @@ void setup()
   Serial.begin(19200);
   delay(3000);
   Serial.println("BLACKSASI");
+  Serial.print("Board rev: ");
   Serial.println(board_rev);
   Serial.flush();
 
@@ -441,8 +442,6 @@ void setup()
   attachInterrupt(BOARD_SCSI_RST, onBusReset, FALLING);
 }
 
-
-
 /*
  * Initialization failed, blink 3x fast
  */
@@ -460,8 +459,6 @@ void onFalseInit(void)
   }
 }
 
-
-
 /*
  * Bus reset interrupt.
  */
@@ -490,8 +487,6 @@ void onBusReset(void)
   }
 }
 
-
-
 /*
  * Write with a handshake.
  */

+ 4 - 4
sw/src/sdcard.cpp

@@ -89,14 +89,14 @@ void sdCardInsert(void){
 
 void switchImage(void){
 
-    uint16_t oldimageSelect = imageSelect;
-    imageSelect = digitalRead(BOARD_SWITCH1_PIN) | 
+    uint8_t oldimageSelect = imageSelect;
+    imageSelect = (~(digitalRead(BOARD_SWITCH1_PIN) | 
                   digitalRead(BOARD_SWITCH2_PIN) << 1 |  
                   digitalRead(BOARD_SWITCH3_PIN) << 2 |  
-                  digitalRead(BOARD_SWITCH4_PIN) << 3;
+                  digitalRead(BOARD_SWITCH4_PIN) << 3)) & 0x0F;
     if ( oldimageSelect!=imageSelect){
     Serial.print("Image: ");
-    Serial.println(15-imageSelect);
+    Serial.println(imageSelect);
     Serial.flush();
     }