<?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>Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/21902/strange-timer-granularity-issue-on-nrf53832-project</link><description>I am attempting to use TIMER4 on an nRF53832 using SDK 12.2.0 but I seem to be running into some sort of granularity issue. 
 Specifically, if set up the timer with 16MHz clocking and 32 bit width and I then use compare register 1, I seem to only get</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 10 May 2017 17:05:39 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/21902/strange-timer-granularity-issue-on-nrf53832-project" /><item><title>RE: Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/thread/86002?ContentTypeID=1</link><pubDate>Wed, 10 May 2017 17:05:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:57575bd0-4723-4ce7-8413-bbcfd14e9d56</guid><dc:creator>AmbystomaLabs</dc:creator><description>&lt;p&gt;If you are trying to get a gpio indication the microsecond the sample is done the above should do it.
You can always fork off the task you create to drive the interrupt for a software handler.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/thread/86001?ContentTypeID=1</link><pubDate>Wed, 10 May 2017 16:54:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f49629b7-9b7f-4b3b-9a24-24fff5bad049</guid><dc:creator>AmbystomaLabs</dc:creator><description>&lt;p&gt;Not sure where Nordic documents it, but keil seemed to know the SAADC event registers.
Seems like it should be something like:  NRF_SAADC-&amp;gt;EVENTS_RESULTDONE
So, if you wanted to you can use that to drive the task.  Not sure if you&amp;#39;ll still be able to have it also drive an interrupt handler at the same time.
If you look around in the NRF headers you should be able to find it out for sure how the event is defined.  Generally Nordic seems to comment the header files well.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/thread/86003?ContentTypeID=1</link><pubDate>Wed, 10 May 2017 16:44:41 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:5d82c268-142c-4d5c-bcc5-515dfe9e2ffc</guid><dc:creator>RHTPaul</dc:creator><description>&lt;p&gt;Mocrosecond resolution timing must be done in hardware using PPI and GPIOTE.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/thread/86000?ContentTypeID=1</link><pubDate>Wed, 10 May 2017 16:35:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2027ec88-6954-41b0-8409-87e2bd25773d</guid><dc:creator>AmbystomaLabs</dc:creator><description>&lt;p&gt;I&amp;#39;m not sure what function you are trying to implement.&lt;/p&gt;
&lt;p&gt;The outcome from the SAADC is a 16bit word, though it could probably get passed via DMA to a communications channel, normally software gets involved to do something with the sample.  And, since this means a software handler for the SAADC, you can just trigger your GPIOTE task from there.  Or, at that point you really don&amp;#39;t need a GPIOTE task you could also just toggle the gpio using the registers.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/thread/85999?ContentTypeID=1</link><pubDate>Wed, 10 May 2017 16:21:23 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74f018eb-392b-4b67-841b-67b2bc7a92fb</guid><dc:creator>RHTPaul</dc:creator><description>&lt;p&gt;I can now successfully use TIMER events to trigger GPIOTE tasks.&lt;/p&gt;
&lt;p&gt;Looking at the Nordic SAADC example, I can see how to trigger ADC sampling from a TIMER event.&lt;/p&gt;
&lt;p&gt;However, I cannot find anything to get an event from SAADC to trigger a GPIOTE task. Is this possible? If so, how do you do it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/thread/85996?ContentTypeID=1</link><pubDate>Tue, 09 May 2017 17:39:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9f21419f-07fc-47fc-8860-87e42586bf1d</guid><dc:creator>RHTPaul</dc:creator><description>&lt;p&gt;OK I used the Nordic gpiote example as a basis and hacked it into my test project to toggle a debug pin when the events for two timer compare registers are reached. I can now get intervals that correcrtly track the intervals I am trying to set. I now have confidence that AmbystomalLabs is absolutely correct in asserting thatr it is necessary to use PPI/GPIOTE to get accurate intervals in the microsecond range.&lt;/p&gt;
&lt;p&gt;I will now need to integrate such functionality into the handling of the control signals I am trying to control. Since I need to turn on and off multiple GPIO lines and, perhaps integrate this with triggering the capture of some ADC samples and turn control signals on and off when the ADC sample event occurs, I am somewhat daunted by this being new to using PPI and GPIOTE. Accordingly, I would be most grateful if anyone can provide more documentation on the use of this functionality (Nordic are execellent at documenting individaul calls and the like, but, in my opinion, not very good at documenting how to use the calls) or provide more complex examples than this simple Nordic GPIOTE example, I would be most grateful.&lt;/p&gt;
&lt;p&gt;Thanks in advance for any additional help anyone can provide.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/thread/85998?ContentTypeID=1</link><pubDate>Tue, 09 May 2017 14:10:15 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6195dd1c-3c9c-4162-aad5-b0f0d4c9def6</guid><dc:creator>AmbystomaLabs</dc:creator><description>&lt;p&gt;You can&amp;#39;t do that and have microsecond switching. An interrupt service request takes quite a while for a processor to handle. 12 cycles according to Turbo, but even more depending on how many local variables are in use when the request happens.
The only way to do this is completely within ppi/gpiote (ie, hardware).&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/thread/85997?ContentTypeID=1</link><pubDate>Tue, 09 May 2017 13:45:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:cb887333-049a-4b2c-8f35-3463477dc74c</guid><dc:creator>RHTPaul</dc:creator><description>&lt;p&gt;Yes I am toggling in the event handler and I do not have a softdevice in the project I am looking at.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/thread/85995?ContentTypeID=1</link><pubDate>Mon, 08 May 2017 22:29:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4d554d76-8981-4913-a718-14245b944639</guid><dc:creator>Turbo J</dc:creator><description>&lt;p&gt;Are you toggeling in the &lt;code&gt;Timer_IRQhandler&lt;/code&gt;? An IRQ handler needs at least 12 clock cycles (64 MHz main clock) for interrupt entry and exit each - and some more µs with the softdevice. Your 45 µs sounds about right when a softdevice is present.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Strange Timer granularity issue on nRF53832 project</title><link>https://devzone.nordicsemi.com/thread/85994?ContentTypeID=1</link><pubDate>Mon, 08 May 2017 20:27:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:93b67c85-9dfb-4d4b-980e-eb11c2c86a0a</guid><dc:creator>AmbystomaLabs</dc:creator><description>&lt;p&gt;This is being done fully in PPI/GPIOTE correct?  You are not using the events to drive a software handler, right?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>