This commit is contained in:
douniwan5788 2024-10-23 21:48:23 +08:00
commit f049b568c5
4 changed files with 7 additions and 7 deletions

View file

@ -178,7 +178,7 @@ static void hitag_send_bit(int bit, bool ledcontrol) {
while (AT91C_BASE_TC0->TC_CV < T0 * 32) {}; while (AT91C_BASE_TC0->TC_CV < T0 * 32) {};
LOW(GPIO_SSC_DOUT); LOW(GPIO_SSC_DOUT);
while (AT91C_BASE_TC0->TC_CV < T0 * 64) {}; while (AT91C_BASE_TC0->TC_CV < T0 * 64) {};
} else { } else {
// AC coding -_-_ // AC coding -_-_
@ -310,7 +310,7 @@ static void hitag_reader_send_bit(int bit, bool ledcontrol) {
if (ledcontrol) LED_A_ON(); if (ledcontrol) LED_A_ON();
// Reset clock for the next bit // Reset clock for the next bit
AT91C_BASE_TC0->TC_CCR = AT91C_TC_SWTRG; AT91C_BASE_TC0->TC_CCR = AT91C_TC_SWTRG;
while (AT91C_BASE_TC0->TC_CV != 0); while (AT91C_BASE_TC0->TC_CV != 0) {};
// Binary puls length modulation (BPLM) is used to encode the data stream // Binary puls length modulation (BPLM) is used to encode the data stream
// This means that a transmission of a one takes longer than that of a zero // This means that a transmission of a one takes longer than that of a zero
@ -355,7 +355,8 @@ static void hitag_reader_send_frame(const uint8_t *frame, size_t frame_len, bool
} }
// send EOF // send EOF
AT91C_BASE_TC0->TC_CCR = AT91C_TC_SWTRG; AT91C_BASE_TC0->TC_CCR = AT91C_TC_SWTRG;
while (AT91C_BASE_TC0->TC_CV != 0); while (AT91C_BASE_TC0->TC_CV != 0) {};
HIGH(GPIO_SSC_DOUT); HIGH(GPIO_SSC_DOUT);
// Wait for 4-10 times the carrier period // Wait for 4-10 times the carrier period
@ -371,7 +372,6 @@ static void hts_stop_clock(void) {
} }
static void hts_init_clock(void) { static void hts_init_clock(void) {
// Enable Peripheral Clock for // Enable Peripheral Clock for
// Timer Counter 0, used to measure exact timing before answering // Timer Counter 0, used to measure exact timing before answering
// Timer Counter 1, used to capture edges of the tag frames // Timer Counter 1, used to capture edges of the tag frames
@ -407,7 +407,7 @@ static void hts_init_clock(void) {
// synchronized startup procedure // synchronized startup procedure
// In theory, with MCK/32, we shouldn't be waiting longer than 32 instruction statements, right? // In theory, with MCK/32, we shouldn't be waiting longer than 32 instruction statements, right?
while (AT91C_BASE_TC0->TC_CV != 0) {}; // wait until TC0 returned to zero while (AT91C_BASE_TC0->TC_CV != 0) {}; // wait until TC0 returned to zero
// reset timestamp // reset timestamp
timestamp_high = 0; timestamp_high = 0;

View file

@ -1588,7 +1588,7 @@ static bool check_chiptype(bool getDeviceData) {
// Hitag S // Hitag S
if (read_hts_uid() == PM3_SUCCESS) { if (read_hts_uid() == PM3_SUCCESS) {
PrintAndLogEx(SUCCESS, "Chipset detection: " _GREEN_("Hitag S / 82xx")); PrintAndLogEx(SUCCESS, "Chipset detection: " _GREEN_("Hitag 1/S / 82xx"));
PrintAndLogEx(HINT, "Hint: try " _YELLOW_("`lf hitag hts`") " commands"); PrintAndLogEx(HINT, "Hint: try " _YELLOW_("`lf hitag hts`") " commands");
retval = true; retval = true;
goto out; goto out;

View file

@ -602,4 +602,3 @@ int CmdLFHitagS(const char *Cmd) {
clearCommandBuffer(); clearCommandBuffer();
return CmdsParse(CommandTable, Cmd); return CmdsParse(CommandTable, Cmd);
} }

View file

@ -544,6 +544,7 @@ void reverse_arraybytes_copy(uint8_t *arr, uint8_t *dest, size_t len) {
} }
} }
// TODO: consider overlap, Implement _membitmovebb
size_t concatbits(uint8_t *dst, size_t dstskip, const uint8_t *src, size_t srcstart, size_t srclen) { size_t concatbits(uint8_t *dst, size_t dstskip, const uint8_t *src, size_t srcstart, size_t srclen) {
// erase dstbuf bits that will be overriden // erase dstbuf bits that will be overriden
dst[dstskip / 8] &= 0xFF - ((1 << (7 - (dstskip % 8) + 1)) - 1); dst[dstskip / 8] &= 0xFF - ((1 << (7 - (dstskip % 8) + 1)) - 1);