Dependencies: mbed qnode2 MFRC522-2 eeprom Buffer2
Diff: main.cpp
- Revision:
- 1:4235920f89f8
- Parent:
- 0:031eeed95323
- Child:
- 2:ed78589d626a
diff -r 031eeed95323 -r 4235920f89f8 main.cpp --- 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; } +} +} +}