แก้ให้แล้ว

Dependencies:   NOKIA_5110 mbed

Fork of Lost-Found_BOX by FRA221:A

Revision:
5:8e3bd2501b17
Parent:
4:75346bd905c0
Child:
6:6635082215c7
--- a/main.cpp	Sun Dec 06 23:22:21 2015 +0000
+++ b/main.cpp	Mon Dec 07 00:18:29 2015 +0000
@@ -10,8 +10,7 @@
 //RFID SCK=pin2    ->   Nucleo SPI_SCK =PA_5=D13
 //RFID SDA=pin1    ->   Nucleo SPI_CS  =PB_6=D10 SlaveSelect
 //RFID RST=pin7    ->   Nucleo         =PA_9=D8
-//3.3V and Gnd to the respective pins                              
-                              
+//3.3V and Gnd to the respective pins                                                           
 #include "mbed.h"
 #include "MFRC522.h"
 #include "NOKIA_5110.h" // Nucleo Pin for MFRC522 reset (pick another D pin if you need D8)
@@ -32,14 +31,21 @@
       ID[i] = RfChip.uid.uidByte[i];
     };  
 }
-
-void checkRight()
+uint8_t check(uint8_t ID[])
 {
+    uint8_t x=0;
+    for(uint8_t i = 0; i < RfChip.uid.size; i++)
+    {
+        if(ID[i] == RfChip.uid.uidByte[i]){ x = x+1;}
+    }
+    if(x == RfChip.uid.size){return 1;}
+    else {return 0;}
 }
 int main(void) {
     pc.baud(115200);
     uint8_t RFID[10];
-    int check=0;
+    int checker = 0;
+    int checks = 0;
     LcdPins myPins;      
     myPins.sce  = PB_4;  //D5 ActiveLow SlaveSelect
     myPins.rst  = PB_10; //D6
@@ -73,55 +79,45 @@
       continue;
     }
     LedGreen = 0;
-    
-    if(check == 1)
-    {
-        if(RFID[1] == RfChip.uid.uidByte[1])
+    myLcd.InitLcd();               
+    myLcd.DrawString("Ready");   
+    myLcd.stop();
+    checker = check(RFID);    
+    if(checks == 1)
         {
-            pc.printf("Right\n");
-            for (uint8_t i = 0; i < RfChip.uid.size; i++)
+            if (checker == 1)
             {
-                RfChip.uid.uidByte[i] = '0';
+                pc.printf("Right\n");
+                myLcd.InitLcd();               
+                myLcd.DrawString("Right"); 
+                myLcd.stop();
+                checks = 0;
+                speak.speakRight();
+                continue;
             }
-            myLcd.InitLcd();              
-            myLcd.DrawString("Right!!  ");   
-            myLcd.stop();
-            check = 0;
-            lock = 1;
-            speak.speakRight();
-            wait(2.5);
-            lock = 0;
-            continue;
+            else
+            {
+                pc.printf("Wrong!!\n");
+                myLcd.InitLcd();               
+                myLcd.DrawString("Wrong!!");   
+                myLcd.stop();
+                speak.speakWrong();
+                continue;
+            }
         }
-        else 
-        {
-            pc.printf("Wrong!!\n");
-            myLcd.InitLcd();              
-            myLcd.DrawString("Wrong!!  ");   
-            myLcd.stop();
-            speak.speakWrong();
-            continue;
-        }
-    }
-    if(check == 0)
-    {
-        myLcd.InitLcd();              
-        myLcd.DrawString("Ready");   
-        myLcd.stop();
-    }
-    
     // Print Card UID
     pc.printf("Card UID: ");
     for (uint8_t i = 0; i < RfChip.uid.size; i++)
     {
       pc.printf(" %X", RfChip.uid.uidByte[i]);
     }
+    checker = check(RFID);
     speak.speak();
     GetID(RFID);
     lock = 0;
     pc.printf("\n\r");   
     wait_ms(1000);
-    check = 1;
+    checks = 1;
     }
   
 }
\ No newline at end of file