Dependencies: mbed qnode2 MFRC522-2 eeprom Buffer2
Diff: main.cpp
- Revision:
- 6:2ca2ebe5b5ed
- Parent:
- 5:24335ea5e4d3
- Child:
- 7:f62ffbdfa977
--- a/main.cpp Mon Jul 30 00:48:05 2018 +0000 +++ b/main.cpp Mon Jul 30 03:53:05 2018 +0000 @@ -16,6 +16,7 @@ MFRC522 RfChip (p5, p6, p7, p8, p21); circular_buf_t buf; // ---->BUFFER CIRCULAR buf InterruptIn event(p16); +InterruptIn reset(p15,PullDown); bool flag1=false; bool flag2=false; bool flag3=false; @@ -28,11 +29,13 @@ void interrupcion(); void disp_unoTx_isr(); void disp_unoRx_isr(); +void flush_memory(); int main() { freq(400000); event.rise(&interrupcion); + reset.rise(&flush_memory); disp_uno.attach(&disp_unoRx_isr,Serial::RxIrq); disp_uno.attach(&disp_unoTx_isr,Serial::TxIrq); struct Queue *q = createQueue(); @@ -40,11 +43,16 @@ buf.buffer = (uint8_t*) malloc(buf.size); enable=0; RfChip.PCD_Init(); - uint8_t count = 0; //-------->>>>>>para iniciar el conteo en 0 de la memoria de cantidad de uid registrados + //count = 0x0001; //-------->>>>>>para iniciar el conteo en 0 de la memoria de cantidad de uid registrados + //write_data(eepr_addr, count_address,&count);//---->>> + uint8_t count = data_read(eepr_addr, count_address); + if (count==0xff){ + count=0x0001; write_data(eepr_addr, count_address,&count);//---->>> - count = data_read(eepr_addr, count_address); - pc.printf("%d UID's registrados en memoria\n",count); - address = (4*uint16_t(count)+1);//--->>actualizar posicion de escritura + count=0x0000; + } + pc.printf("%x UID's registrados en memoria\n",count); + address = (4*uint16_t(count)+1);//--->>Crear posicion de escritura actual while(1) { while(flag4==true) { if(!RfChip.PICC_IsNewCardPresent()) @@ -54,8 +62,7 @@ pc.printf("Tarjeta Numero: "); uint8_t *c = &RfChip.uid.uidByte[0]; enQueue(q,c); - count = data_read(eepr_addr, count_address); - address = (4*uint16_t(count)+1);//--->>actualizar posicion de escritura + //count = data_read(eepr_addr, count_address); write_data(eepr_addr, address,c);//---->>>guardar UID en memoria for(int j=0; j<4; j++) { uint8_t car = data_read(eepr_addr, (address+j)); @@ -63,6 +70,7 @@ } pc.printf("\n"); count++;//------>>>>sumar 1 al contador de UID's + address = (4*uint16_t(count)+1);//--->>actualizar posicion de escritura write_data(eepr_addr, count_address,&count);///---->>actualizar en memoria el contador pc.printf("\n"); flag4=false; @@ -71,12 +79,23 @@ } - +void flush_memory() +{ + led4=1; + uint8_t data= 0xff; + write_data(eepr_addr,0x0000,&data); + data = 0x01; + for(uint16_t k=0x0001; k<0x003f; k++) { + int conf = write_data(eepr_addr,k,&data); + } + printf("Memoria borrada\n"); + led4=0; +} void interrupcion() { - led4=0; + flag4=true; } @@ -109,3 +128,6 @@ } } + + +