From 440a95fcf18a3504ec06b0e90a660b5f8e184cde Mon Sep 17 00:00:00 2001 From: henryk Date: Mon, 3 Mar 2008 20:56:30 +0000 Subject: Sending seems to be reliable now. Once in a while (about 1 in 20) there's an error condition that's not being recovered from, need to investigate git-svn-id: https://svn.openpcd.org:2342/trunk@438 6dc7ffe9-61d6-0310-9af1-9938baff3ed1 --- openpicc/application/ssc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'openpicc/application/ssc.c') diff --git a/openpicc/application/ssc.c b/openpicc/application/ssc.c index 5603256..50d416b 100644 --- a/openpicc/application/ssc.c +++ b/openpicc/application/ssc.c @@ -192,7 +192,7 @@ static int __ramfunc _ssc_tx_irq(u_int32_t sr, portBASE_TYPE task_woken) { ssc_handle_t *sh = &_ssc; - if( sr & AT91C_SSC_ENDTX ) { + if( sr & AT91C_SSC_TXEMPTY ) { /* Tx has ended */ AT91F_PDC_DisableTx(sh->pdc); AT91F_SSC_DisableTx(sh->ssc); @@ -656,16 +656,16 @@ int ssc_send(ssc_handle_t* sh, ssc_dma_tx_buffer_t *buffer) sh->ssc->SSC_TFMR = ((data_len-1) & 0x1f) | (((num_data_ssc-1) & 0x0f) << 8) | (((sync_len-1) & 0x0f) << 16); - sh->ssc->SSC_TCMR = 0x01 | AT91C_SSC_CKO_NONE | (AT91C_SSC_CKI&0) | start_cond; + sh->ssc->SSC_TCMR = 0x01 | AT91C_SSC_CKO_NONE | AT91C_SSC_CKI | start_cond; AT91F_PDC_SetTx(sh->pdc, buffer->data, num_data); AT91F_PDC_SetNextTx(sh->pdc, 0, 0); buffer->state = PENDING; - sh->ssc->SSC_IER = AT91C_SSC_ENDTX; + sh->ssc->SSC_IER = AT91C_SSC_TXEMPTY; /* Enable DMA */ + sh->ssc->SSC_THR = 0; AT91F_PDC_EnableTx(sh->pdc); - //AT91F_PDC_SetTx(sh->pdc, buffer->data, num_data); /* Disable Receiver, see comments in _ssc_rx_irq */ AT91F_SSC_DisableRx(sh->ssc); -- cgit v1.2.3