X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/7a8db2f67821d2e55c98a9a4b7badcd17947777d..b9e8854a8bbff644503715653a85a6d686d4ea6a:/armsrc/legicrf.c?ds=sidebyside diff --git a/armsrc/legicrf.c b/armsrc/legicrf.c index 2d02b636..86e42c17 100644 --- a/armsrc/legicrf.c +++ b/armsrc/legicrf.c @@ -394,9 +394,10 @@ int legic_read_byte( uint16_t index, uint8_t cmd_sz) { uint8_t byte, crc, calcCrc = 0; uint32_t cmd = (index << 1) | LEGIC_READ; - - //WaitTicks(366); - WaitTicks(330); + + // 90ticks = 60us (should be 100us but crc calc takes time.) + //WaitTicks(330); // 330ticks prng(4) - works + WaitTicks(240); // 240ticks prng(3) - works frame_sendAsReader(cmd, cmd_sz); frame_receiveAsReader(¤t_frame, 12); @@ -411,7 +412,7 @@ int legic_read_byte( uint16_t index, uint8_t cmd_sz) { return -1; } - legic_prng_forward(4); + legic_prng_forward(3); return byte; } @@ -505,7 +506,7 @@ int LegicRfReader(uint16_t offset, uint16_t len, uint8_t iv) { setup_phase_reader(iv); LED_B_ON(); - while (i <= len) { + while (i < len) { int r = legic_read_byte(offset + i, card.cmdsize); if (r == -1 || BUTTON_PRESS()) { @@ -761,7 +762,7 @@ void LegicRfInfo(void){ } cmd_send(CMD_ACK, 1, 0, 0, buf, sizeof(legic_card_select_t)); - + OUT: switch_off_tag_rwd(); LEDsoff();