![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
แก้ให้แล้ว
Dependencies: NOKIA_5110 mbed
Fork of Lost-Found_BOX by
Diff: main.cpp
- 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