X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/c6be64da095246620420500857f1f34994b769a8..b22f7a6bc68319533f9c83c24045d4bd79994f1f:/client/graph.c diff --git a/client/graph.c b/client/graph.c index 8974f4c3..7b45f3f2 100644 --- a/client/graph.c +++ b/client/graph.c @@ -21,11 +21,13 @@ int GraphTraceLen; void AppendGraph(int redraw, int clock, int bit) { int i; - - for (i = 0; i < (int)(clock / 2); ++i) - GraphBuffer[GraphTraceLen++] = bit ^ 1; + int half = (int)(clock/2); + int firstbit = bit ^ 1; + + for (i = 0; i < half; ++i) + GraphBuffer[GraphTraceLen++] = firstbit; - for (i = (int)(clock / 2); i < clock; ++i) + for (i = 0; i <= half; ++i) GraphBuffer[GraphTraceLen++] = bit; if (redraw) @@ -36,8 +38,10 @@ void AppendGraph(int redraw, int clock, int bit) int ClearGraph(int redraw) { int gtl = GraphTraceLen; - GraphTraceLen = 0; + memset(GraphBuffer, 0x00, GraphTraceLen); + GraphTraceLen = 0; + if (redraw) RepaintGraphWindow(); @@ -70,8 +74,26 @@ int DetectClock(int peak) lastpeak = i; } } - - return clock; + + int clockmod = clock%8; + if ( clockmod == 0) + return clock; + + // When detected clock is 31 or 33 then return 32 + + printf("Found clock at %d ", clock); + switch( clockmod ) + { + case 7: clock++; break; + case 6: clock += 2 ; break; + case 1: clock--; break; + case 2: clock -= 2; break; + } + if ( clock < 32) + clock = 32; + + printf("- adjusted it to %d \n", clock); + return clock; } /* Get or auto-detect clock rate */