<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>realtime interrupt with 50us processing possible with s110?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/4509/realtime-interrupt-with-50us-processing-possible-with-s110</link><description>I have a situation where I need a software PWM for several channels, which are multiplexed via a shift register. 
 The output loop needs to run at several kHz for this to work, but the processing only takes about 50us, which at about 8kHz puts it at</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Fri, 08 May 2015 15:05:09 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/4509/realtime-interrupt-with-50us-processing-possible-with-s110" /><item><title>RE: realtime interrupt with 50us processing possible with s110?</title><link>https://devzone.nordicsemi.com/thread/16002?ContentTypeID=1</link><pubDate>Fri, 08 May 2015 15:05:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b4740dd1-6356-41c0-a9c5-194af2140e16</guid><dc:creator>Jack</dc:creator><description>&lt;p&gt;Hi Stefan,&lt;/p&gt;
&lt;p&gt;May I ask where to find out how long the CPU will be blocked? You say the latest revision will be blocked for 250 microseconds. Will it say this in the Soft Device specification? As I am doing a university project I have to cite the document that says this info, it&amp;#39;s not that I don&amp;#39;t trust you ;)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: realtime interrupt with 50us processing possible with s110?</title><link>https://devzone.nordicsemi.com/thread/16003?ContentTypeID=1</link><pubDate>Mon, 24 Nov 2014 08:45:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:23649f81-3f79-4daa-a93d-9ef03ad9cef7</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Ok, then perhaps the best choice for you would be to use the third revision nRF51 hardware, which should have maximum blocking time of 250us. The new &lt;a href="https://www.nordicsemi.com/eng/Products/nRF51-DK"&gt;nRF51-DK&lt;/a&gt; contains the third revision hardware. To obtain the maximum 250us blocking time, you will have to enable it manually which is described &lt;a href="https://devzone.nordicsemi.com/question/18751/how-to-unblock-the-cpu-during-connection-intervals-with-s110-v710/"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: realtime interrupt with 50us processing possible with s110?</title><link>https://devzone.nordicsemi.com/thread/16001?ContentTypeID=1</link><pubDate>Thu, 20 Nov 2014 16:40:47 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ab794a32-f083-4559-bc26-7ce603cc41f3</guid><dc:creator>dognotdog</dc:creator><description>&lt;p&gt;The PWM lib is impractical for the application, as it happens that I need to multiplex the output signals, else I could do it easily via the TIMER peripherals directly, and wouldnt need software PWM. The CPU need in my case is ca. 50us per 125us (8kHz).&lt;/p&gt;
&lt;p&gt;I find it unfortunate that the softdevice cant be preempted for small time periods like these. On a relatively high powered LED setup, for example, missing several ms in PWM can cause noticable flicker, when the pulse edge is affected.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: realtime interrupt with 50us processing possible with s110?</title><link>https://devzone.nordicsemi.com/thread/16000?ContentTypeID=1</link><pubDate>Thu, 20 Nov 2014 15:38:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:08075216-8d01-4930-be7c-a37c3686d4ce</guid><dc:creator>Stefan Birnir Sverrisson</dc:creator><description>&lt;p&gt;Hi&lt;/p&gt;
&lt;p&gt;Have you considered to use the &lt;a href="https://github.com/NordicSemiconductor/nrf51-pwm-library"&gt;PWM library&lt;/a&gt; instead which enables 4xPWM on multiple pins simultaneously without using the CPU. When using the PWM library, you only need the CPU to change the frequency or duty cycle of the PWM.&lt;/p&gt;
&lt;p&gt;For the &lt;a href="https://devzone.nordicsemi.com/question/18925/nrf51822-revision/"&gt;second revision nRF51 hardware&lt;/a&gt; the CPU is blocked by the S110 BLE softdevice with 1ms-6ms, so the application can not use the CPU for 1ms-6ms for any interrupt processing. For the third revision hardware, the softdevice blocks the CPU for maximum 250us.&lt;/p&gt;
&lt;p&gt;The softdevice will always have higher priority than the application, in order for not to break the BLE protocol.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>