- From: Blacker, Phil M <phil.blacker_at_atkinsglobal.com>
- Date: Thu, 2 Dec 2004 16:59:49 -0000
>> >Well, it's just being overly cautious in DEBUG_INTERRUPT mode. >> >There's no reason for it to disable interrupts (the fifo just filled >> >to half full again while the interrupt handler was running). Try >> >commenting out the line that goes >> > >> >win_out(0,Interrupt_Control_Register); >> >> I commented out this line, but the acquisition still stops as the >> error message appears in the syslog. >> > >Well, you could try looping a few times in the interrupt handler at the > >ni_handle_fifo_half_full(dev); > >call, until the AI_FIFO_Half_Full_St bit in the AI_Status_1_Register >actually clears. I did this, I had to add a time out or the machine would sometimes lock up completely (I guess in some circumstances the status bit never clears). The timeout is very crude I just loop 1e7 times checking win_in(AI_Status_1_Register) each time, this gives a delay on my machine of 1-2 seconds. Without the timeout I would get FIFO errors, I think this is related to the delay waiting for the interrupt bit to clear, or complete lock ups. With the timeout, the loop times out and the acquisition stops. I do not get the FIFO errors. Phil This email and any attached files are confidential and copyright protected. If you are not the addressee, any dissemination of this communication is strictly prohibited. Unless otherwise expressly agreed in writing, nothing stated in this communication shall be legally binding.
Received on 2004-12-02Z16:59:49