X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com Message-ID: <483ACD48.2050106@iki.fi> Date: Mon, 26 May 2008 17:46:32 +0300 From: Andris Pavenis User-Agent: Thunderbird 2.0.0.14 (X11/20080501) MIME-Version: 1.0 CC: djgpp AT delorie DOT com Subject: Re: 30K Timer tic interrupt handler References: <20080525194916 DOT 3DD6C5702E7 AT panel DOT abserver DOT es> <200805252133 DOT m4PLXarG015150 AT envy DOT delorie DOT com> In-Reply-To: <200805252133.m4PLXarG015150@envy.delorie.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Reply-To: djgpp AT delorie DOT com DJ Delorie wrote: >> A simple solution is to write a resident program with a 16 bit >> compiler (like borladc). You can pass information with your 32 bits >> progam and your 16 bit program via software interrupts. > > You can do 16 bit handlers with djgpp, no need to get a separate > compiler for it. > > The problem here is that at 30,000 interrupts per second, you need > both a 16 bit and a 32 bit handler, so that interrupts never cause a > mode switch. > If one needs 30000 interrupts per second, one perhaps needs a real time operating system. The mode switch is perhaps not only problem here. Handling some interrupt may take more than 33 microseconds and then 30 KHz timer interrupt may get lost even when mode switch is not needed. Additionally interrups may sometimes be disabled for more than 30 mks with the same results. One thing to try could be RTAI (https://www.rtai.org/). I have used it earlier myself but not for so high interrupt frequencies and not in last years. Andris