diff options
Diffstat (limited to 'openpicc/application/ssc_picc.c')
-rw-r--r-- | openpicc/application/ssc_picc.c | 34 |
1 files changed, 6 insertions, 28 deletions
diff --git a/openpicc/application/ssc_picc.c b/openpicc/application/ssc_picc.c index ac3b70f..3dbc246 100644 --- a/openpicc/application/ssc_picc.c +++ b/openpicc/application/ssc_picc.c @@ -376,32 +376,12 @@ static void __ramfunc ssc_irq(void) } //AT91F_SSC_DisableIt(AT91C_BASE_SSC, SSC_RX_IRQ_MASK); #endif -#if 0 -/* Experimental start SSC on frame, stop on FFFFFFFF */ - if (ssc_state.mode == SSC_MODE_CONTINUOUS) { - //ssc->SSC_RCMR = (ssc->SSC_RCMR & ~AT91C_SSC_START) | AT91C_SSC_START_CONTINOUS; - tmp = (u_int32_t*)ssc_state.rx_ctx[0]->data; - for(i = ssc_state.rx_ctx[0]->size / 4; i >= 0 ; i--) { - if( *tmp++ == 0xFFFFFFFF ) { - *(tmp-1) = 0xAAAAAAAA; // debug marker - /* No modulation for a long time, stop sampling - * and prepare for next frame */ - DEBUGP("RESTART RX "); - ssc_rx_stop(); - ssc_rx_mode_set(ssc_state.mode); - ssc_rx_start(); - led_toggle(1); - break; - } - } - } -#endif /* Ignore empty frames */ if (ssc_state.mode == SSC_MODE_CONTINUOUS) { tmp = (u_int32_t*)ssc_state.buffer[0]->data; emptyframe = 1; for(i = (ssc_state.buffer[0]->len) / 4 - 8/*WTF?*/; i > 0; i--) { - if( *tmp++ != 0xFFFFFFFF ) { + if( *tmp++ != 0x0 ) { DEBUGPCR("NONEMPTY(%08x, %i): %08x", tmp, i, *(tmp-1)); emptyframe = 0; break; @@ -457,13 +437,11 @@ static void __ramfunc ssc_irq(void) AT91C_SSC_OVRUN); // udp_refill_ep(2); - -#if 0 - if (__ssc_rx_refill(1) == -1) - AT91F_SSC_DisableIt(ssc, AT91C_SSC_ENDRX | - AT91C_SSC_RXBUFF | - AT91C_SSC_OVRUN); -#endif + + if(ssc_state.mode == SSC_MODE_14443A_SHORT) { + // Stop sampling here + ssc_rx_stop(); + } } if (ssc_sr & AT91C_SSC_OVRUN) |