diff options
Diffstat (limited to 'openpicc')
-rw-r--r-- | openpicc/application/iso14443a_diffmiller.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/openpicc/application/iso14443a_diffmiller.c b/openpicc/application/iso14443a_diffmiller.c index e6eb6d8..97017f7 100644 --- a/openpicc/application/iso14443a_diffmiller.c +++ b/openpicc/application/iso14443a_diffmiller.c @@ -191,13 +191,14 @@ static inline void end_frame(struct diffmiller_state * const state, const u_int3 #define DO_BIT_1 { \ last_data_bit = 1; \ - if(++counter==9) { \ - append_to_frame(state, state->byte, 1, 8); \ - counter=state->byte=state->parity=0; \ - } else { \ + if(counter<8) { \ state->byte |= (1<<counter); \ state->parity ^= 1; \ } \ + if(++counter==9) { \ + append_to_frame(state, state->byte, 1, 8); \ + counter=state->byte=state->parity=0; \ + } \ PRINT_BIT(" 1"); \ } |