,.

Dependencies:   mbed qnode2 MFRC522-2 eeprom Buffer2

Revision:
1:4235920f89f8
Parent:
0:031eeed95323
Child:
2:ed78589d626a
--- a/main.cpp	Fri Jul 27 00:31:50 2018 +0000
+++ b/main.cpp	Fri Jul 27 02:49:21 2018 +0000
@@ -2,23 +2,36 @@
 #include "MFRC522.h"
 #include "qnode.h"
 #include "Buffer.h"
+#include "eeprom.h"
+#define eepr_addr 0x50
+
 
 
-DigitalOut led_3(LED3);
-DigitalOut led2(LED2);
-DigitalOut LedGreen(LED1);
+I2C i2c(p28,p27);
+DigitalOut led4(LED4);
+DigitalOut led3(LED3);
+DigitalOut led1(LED1);
 DigitalOut enable(p19);
 Serial pc(USBTX, USBRX);
 Serial disp_uno(p9, p10);  // tx, rx
 MFRC522    RfChip   (p5, p6, p7, p8, p21);
 circular_buf_t buf; // ---->BUFFER CIRCULAR buf
+InterruptIn event(p16);
 bool flag1=false;
 bool flag2=false;
 bool flag3=false;
+bool flag4=false;
 volatile bool buf1ready=false;
 volatile bool buf2ready=false;
+uint16_t address=0x0001;
 
 
+void interrupcion()
+{
+    led4=0;
+    flag4=true;
+}
+
 void disp_unoTx_isr()
 {
     enable=0;
@@ -26,7 +39,6 @@
 
 void disp_unoRx_isr()
 {
-    led2=1;
     uint8_t b = disp_uno.getc();
 
     if(b!=NULL) {
@@ -43,8 +55,8 @@
             } else if(a=='N') {
                 flag3=true;
             }
-        }else
-        circular_buf_reset(&buf);
+        } else
+            circular_buf_reset(&buf);
 
     }
 
@@ -53,50 +65,78 @@
 
 int main()
 {
+    led3=1;
+    led1=1;
+    event.rise(&interrupcion);
     struct Queue *q = createQueue();
     pc.printf("Listo para lectura\n");
     buf.size = 5;
     buf.buffer = (uint8_t*) malloc(buf.size);
     enable=0;
-    led2=0;
     RfChip.PCD_Init();
     disp_uno.attach(&disp_unoRx_isr,Serial::RxIrq);
     disp_uno.attach(&disp_unoTx_isr,Serial::TxIrq);
-
-    while(1) {
-        led2 = !led2;
-        if ( RfChip.PICC_IsNewCardPresent()) {
-            led_3=0;
-            if (RfChip.PICC_ReadCardSerial()) {
+    led4=1;
+    while(1){
+        while(flag4==true){
+        if(!RfChip.PICC_IsNewCardPresent())
+            continue;
+        if (!RfChip.PICC_ReadCardSerial())
+            continue;
+        pc.printf("Tarjeta Numero: ");
+        uint8_t *c = &RfChip.uid.uidByte[0];
+        enQueue(q,c);
+        ret = write_data(eepr_addr, address,c);
+        pc.printf("\n");
+        for(int j=0; j<4; j++) {
+            uint8_t car = data_read(eepr_addr, (0x0001+j));
+            pc.printf("%X",car);
+        }
+        flag4=false;
+        }
+}
 
-                LedGreen = 1;
-                pc.printf("Tarjeta Numero: ");
-                uint8_t * c = &RfChip.uid.uidByte[0];
-                enQueue(q,c);
-                pc.printf("\n\r");
-                wait_ms(200);
+}
+
+/*
+            led2 = !led2;
+            if ( RfChip.PICC_IsNewCardPresent()) {
+                led_3=0;
+                if (RfChip.PICC_ReadCardSerial()) {
+
+                    LedGreen = 1;
+                    pc.printf("Tarjeta Numero: ");
+                    uint8_t * c = &RfChip.uid.uidByte[0];
+                    enQueue(q,c);
+                    pc.printf("\n\r");
+                    wait_ms(200);
+                }
             }
-        }
+*/
 
 
-        if(flag1==true) {
-            QNode *c= deQueue(q);
-            enable=1;
-            for(int i=0; i<4; i++) {
-                disp_uno.printf("%02X ",c->uid[i]);
-            }
-            enable=1;
-            disp_uno.putc('\n');
-            flag1=false;
-        } else if(flag2==true) {
-            //enable=1;
-            pc.printf("YES\n");
-            flag2=false;
-        } else if(flag3==true) {
-            //enable=1;
-            pc.printf("NO\n");
-            flag3=false;
-        }
 
+if(flag1==true)
+{
+    QNode *c= deQueue(q);
+    enable=1;
+    for(int i=0; i<4; i++) {
+        disp_uno.printf("%02X ",c->uid[i]);
     }
+    enable=1;
+    disp_uno.putc('\n');
+    flag1=false;
+} else if(flag2==true)
+{
+    //enable=1;
+    pc.printf("YES\n");
+    flag2=false;
+} else if(flag3==true)
+{
+    //enable=1;
+    pc.printf("NO\n");
+    flag3=false;
 }
+}
+}
+}