X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/d10e08ae6e5a113f88daeeaa59fd352fc35d478d..89ec86abd293e6294223e971278caf4aad2be190:/armsrc/pcf7931.c?ds=sidebyside

diff --git a/armsrc/pcf7931.c b/armsrc/pcf7931.c
index 290cffef..e4ba1da5 100644
--- a/armsrc/pcf7931.c
+++ b/armsrc/pcf7931.c
@@ -2,14 +2,12 @@
 #include "apps.h"
 #include "lfsampling.h"
 #include "pcf7931.h"
+#include "util.h"
 #include "string.h"
 
 #define T0_PCF 8 //period for the pcf7931 in us
 #define ALLOC 16
 
-#define abs(x) ( ((x)<0) ? -(x) : (x) )
-#define max(x,y) ( x<y ? y:x)
-
 int DemodPCF7931(uint8_t **outBlocks) {
 
     uint8_t bits[256] = {0x00};
@@ -29,6 +27,8 @@ int DemodPCF7931(uint8_t **outBlocks) {
 	int num_blocks = 0;
 	int lmin=128, lmax=128;
 	uint8_t dir;
+	//clear read buffer
+	BigBuf_Clear_keep_EM();
 
 	LFSetupFPGAForADC(95, true);
 	DoAcquisition_default(0, true);
@@ -70,7 +70,7 @@ int DemodPCF7931(uint8_t **outBlocks) {
 
 			// Switch depending on lc length:
 			// Tolerance is 1/8 of clock rate (arbitrary)
-			if (abs(lc-clock/4) < tolerance) {
+			if (ABS(lc-clock/4) < tolerance) {
 				// 16T0
 				if((i - pmc) == lc) { /* 16T0 was previous one */
 					/* It's a PMC ! */
@@ -82,7 +82,7 @@ int DemodPCF7931(uint8_t **outBlocks) {
 				else {
 					pmc = i;
 				}
-			} else if (abs(lc-clock/2) < tolerance) {
+			} else if (ABS(lc-clock/2) < tolerance) {
 				// 32TO
 				if((i - pmc) == lc) { /* 16T0 was previous one */
 					/* It's a PMC ! */
@@ -97,7 +97,7 @@ int DemodPCF7931(uint8_t **outBlocks) {
 				}
 				else
 					half_switch++;
-			} else if (abs(lc-clock) < tolerance) {
+			} else if (ABS(lc-clock) < tolerance) {
 				// 64TO
                 bits[bitidx++] = 1;
 			} else {
@@ -202,7 +202,7 @@ void ReadPCF7931() {
 						Blocks[0][ALLOC] = 1;
 						memcpy(Blocks[1], tmpBlocks[i+1], 16);
 						Blocks[1][ALLOC] = 1;
-						max_blocks = max((Blocks[1][14] & 0x7f), Blocks[1][15]) + 1;
+						max_blocks = MAX((Blocks[1][14] & 0x7f), Blocks[1][15]) + 1;
 						// Debug print
 						Dbprintf("(dbg) Max blocks: %d", max_blocks);
 						num_blocks = 2;
@@ -268,7 +268,7 @@ void ReadPCF7931() {
 	}
 	Dbprintf("-----------------------------------------");
 
-	return ;
+	cmd_send(CMD_ACK,0,0,0,0,0);
 }