<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic S12z 16 bit timer in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12z-16-bit-timer/m-p/892566#M16401</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;Currently I am exploring VLG-S12zvca evaluation board. Working on 16bit timer.&lt;/P&gt;&lt;P&gt;I have written a small code where I am toggling GPIO pin PP6 and varying its on and off timing by using 16 bit timer, I have set ECLK to 24 MHz.&amp;nbsp;i have observed following observations and Also please find attached doc for reference.&lt;/P&gt;&lt;P&gt;Questions:-&lt;/P&gt;&lt;P&gt;1) if we increment timer counter to maximum value that is 65535 and set prescalar value to 0&amp;nbsp;, it generates 2.73msec of delay, observed at ppg, it matched with calculations as mentioned below --&amp;gt;&lt;/P&gt;&lt;P&gt;Delay time = Counter value/ Eclk/2^ prescalar value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 65535/24/2^0 * 10^-6&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 65535/24 us&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=2730.625 us&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=2.73ms&lt;/P&gt;&lt;P&gt;&amp;nbsp; I want to know&amp;nbsp;that , how much minimum delay can be generated using minimum counter value ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) I have checked for counter value 1,2,3,4,5 it&amp;nbsp;consider as 65535 and generates 2.73msec of delay it doesn't matches with calculations o, instead&amp;nbsp;I have observed 1us of delay&amp;nbsp;at counter value of 6, why is it?&lt;/P&gt;&lt;TABLE height="340" style="border-color: #000000; width: 622px; height: 340px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style="border: 1pt solid windowtext; width: 39px; background-color: transparent;"&gt;&lt;STRONG&gt;Sr.no.&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border-width: 1pt 0px; border-style: solid none; border-color: windowtext black; width: 89px; background-color: transparent;"&gt;&lt;STRONG&gt;ON time Value &lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border: 1pt solid windowtext; width: 87px; background-color: transparent;"&gt;&lt;STRONG&gt;Off time value&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border-width: 1pt 0px; border-style: solid none; border-color: windowtext black; width: 88px; background-color: transparent;"&gt;&lt;STRONG&gt;Observed ON time Value&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border: 1pt solid windowtext; width: 89px; background-color: transparent;"&gt;&lt;STRONG&gt;Observed Off time Value&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border-width: 1pt 1pt 1pt 0px; border-style: solid solid solid none; border-color: windowtext windowtext windowtext black; width: 101px; background-color: transparent;"&gt;&lt;STRONG&gt;Calculated on(us)&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border-width: 1pt 1pt 1pt 0px; border-style: solid solid solid none; border-color: windowtext windowtext windowtext black; width: 78px; background-color: transparent;"&gt;&lt;STRONG&gt;Calculated off(us)&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.8ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.8ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;10000&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;420us&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;416.6666667&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;3&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.041666667&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;4&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.083333333&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;5&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;3&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.125&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;6&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;4&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.166666667&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;7&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;5&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.208333333&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;8&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;6&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;6&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;1us&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;1us&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.25&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.25&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;--&amp;gt; Does it mean that S12zvca internally takes 24cycles for its compiling, boot loading or any other tasks that's why it supports only 1us at counter value 6?&lt;/P&gt;&lt;P&gt;--&amp;gt;is it possible to generate a delay in nanosecond by using s12zvca ? if yes then how?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also Find code below;-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#include&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #2a00ff; font-size: small; "&gt;&amp;lt;hidef.h&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* for EnableInterrupts macro */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#include&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #2a00ff; font-size: small; "&gt;"derivative.h"&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* include peripheral declarations */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;void&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;STRONG&gt;main&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small; "&gt;void&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;CPMUCLKS_PLLSEL = 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUREFDIV_REFFRQ = 1;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUREFDIV_REFDIV = 0x0; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUSYNR_VCOFRQ = 0x1; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUSYNR_SYNDIV = 0x5;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUPOSTDIV_POSTDIV = 0x0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUOSC_OSCE = 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small; "&gt;while&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt;(!CPMUIFLG_LOCK){} &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUIFLG = 0xFF; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;ECLKCTL_NECLK=0;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;//Use PP6 as output for LED&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;DDRP_DDRP6 = 1;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; TIM0TSCR1 = 0x90; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; TIM0TSCR2 = 0x10; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; TIM0TIOS_IOS0=1; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small; "&gt;for&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt;(;;){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;PTP_PTP6=1;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; TIM0TC0 = TIM0TCNT + 65535 ; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* start an OC0 operation_300ms */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; text-decoration: underline; font-size: small; "&gt;while&lt;/STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;SPAN style="font-size: small;"&gt;(!(TIM0TFLG1 &amp;amp; 0x01)); &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* wait for PT0 to go high */&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PTP_PTP6=0;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; TIM0TC0 = TIM0TCNT + 65535 ; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* start an OC0 operation_300ms */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; text-decoration: underline; font-size: small; "&gt;while&lt;/STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;SPAN style="font-size: small;"&gt;(!(TIM0TFLG1 &amp;amp; 0x01)); &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* wait for PT0 to go high */&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please let me know your all&amp;nbsp;valuable comments and suggestion.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You,&lt;/P&gt;&lt;P&gt;Shubhangi Mahajan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 14 May 2019 06:00:55 GMT</pubDate>
    <dc:creator>shubhangi_mahaj</dc:creator>
    <dc:date>2019-05-14T06:00:55Z</dc:date>
    <item>
      <title>S12z 16 bit timer</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12z-16-bit-timer/m-p/892566#M16401</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello all,&lt;/P&gt;&lt;P&gt;Currently I am exploring VLG-S12zvca evaluation board. Working on 16bit timer.&lt;/P&gt;&lt;P&gt;I have written a small code where I am toggling GPIO pin PP6 and varying its on and off timing by using 16 bit timer, I have set ECLK to 24 MHz.&amp;nbsp;i have observed following observations and Also please find attached doc for reference.&lt;/P&gt;&lt;P&gt;Questions:-&lt;/P&gt;&lt;P&gt;1) if we increment timer counter to maximum value that is 65535 and set prescalar value to 0&amp;nbsp;, it generates 2.73msec of delay, observed at ppg, it matched with calculations as mentioned below --&amp;gt;&lt;/P&gt;&lt;P&gt;Delay time = Counter value/ Eclk/2^ prescalar value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 65535/24/2^0 * 10^-6&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;= 65535/24 us&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=2730.625 us&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;=2.73ms&lt;/P&gt;&lt;P&gt;&amp;nbsp; I want to know&amp;nbsp;that , how much minimum delay can be generated using minimum counter value ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) I have checked for counter value 1,2,3,4,5 it&amp;nbsp;consider as 65535 and generates 2.73msec of delay it doesn't matches with calculations o, instead&amp;nbsp;I have observed 1us of delay&amp;nbsp;at counter value of 6, why is it?&lt;/P&gt;&lt;TABLE height="340" style="border-color: #000000; width: 622px; height: 340px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style="border: 1pt solid windowtext; width: 39px; background-color: transparent;"&gt;&lt;STRONG&gt;Sr.no.&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border-width: 1pt 0px; border-style: solid none; border-color: windowtext black; width: 89px; background-color: transparent;"&gt;&lt;STRONG&gt;ON time Value &lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border: 1pt solid windowtext; width: 87px; background-color: transparent;"&gt;&lt;STRONG&gt;Off time value&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border-width: 1pt 0px; border-style: solid none; border-color: windowtext black; width: 88px; background-color: transparent;"&gt;&lt;STRONG&gt;Observed ON time Value&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border: 1pt solid windowtext; width: 89px; background-color: transparent;"&gt;&lt;STRONG&gt;Observed Off time Value&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border-width: 1pt 1pt 1pt 0px; border-style: solid solid solid none; border-color: windowtext windowtext windowtext black; width: 101px; background-color: transparent;"&gt;&lt;STRONG&gt;Calculated on(us)&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD style="border-width: 1pt 1pt 1pt 0px; border-style: solid solid solid none; border-color: windowtext windowtext windowtext black; width: 78px; background-color: transparent;"&gt;&lt;STRONG&gt;Calculated off(us)&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.8ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.8ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;10000&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;420us&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;416.6666667&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;3&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;1&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.041666667&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;4&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.083333333&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;5&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;3&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.125&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;6&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;4&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.166666667&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;7&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;5&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;65535&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2.76ms&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.208333333&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;2730.625&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;8&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;6&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;6&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;1us&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;1us&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.25&lt;/TD&gt;&lt;TD style="border-width: 0px 0.5pt 0.5pt 1pt; border-style: none solid solid; width: 39px; background-color: transparent;"&gt;0.25&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;--&amp;gt; Does it mean that S12zvca internally takes 24cycles for its compiling, boot loading or any other tasks that's why it supports only 1us at counter value 6?&lt;/P&gt;&lt;P&gt;--&amp;gt;is it possible to generate a delay in nanosecond by using s12zvca ? if yes then how?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also Find code below;-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#include&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #2a00ff; font-size: small; "&gt;&amp;lt;hidef.h&amp;gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* for EnableInterrupts macro */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;#include&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #2a00ff; font-size: small; "&gt;"derivative.h"&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* include peripheral declarations */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; font-size: small; "&gt;&lt;STRONG&gt;void&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="font-size: small;"&gt; &lt;STRONG&gt;main&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small; "&gt;void&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;CPMUCLKS_PLLSEL = 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUREFDIV_REFFRQ = 1;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUREFDIV_REFDIV = 0x0; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUSYNR_VCOFRQ = 0x1; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUSYNR_SYNDIV = 0x5;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUPOSTDIV_POSTDIV = 0x0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUOSC_OSCE = 1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small; "&gt;while&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt;(!CPMUIFLG_LOCK){} &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; CPMUIFLG = 0xFF; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;ECLKCTL_NECLK=0;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;SPAN style="font-size: small;"&gt;&amp;nbsp;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;//Use PP6 as output for LED&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;DDRP_DDRP6 = 1;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; TIM0TSCR1 = 0x90; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; TIM0TSCR2 = 0x10; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; TIM0TIOS_IOS0=1; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; font-size: small; "&gt;for&lt;/STRONG&gt;&lt;SPAN style="font-size: small;"&gt;(;;){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;PTP_PTP6=1;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; TIM0TC0 = TIM0TCNT + 65535 ; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* start an OC0 operation_300ms */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; text-decoration: underline; font-size: small; "&gt;while&lt;/STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;SPAN style="font-size: small;"&gt;(!(TIM0TFLG1 &amp;amp; 0x01)); &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* wait for PT0 to go high */&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PTP_PTP6=0;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt; TIM0TC0 = TIM0TCNT + 65535 ; &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* start an OC0 operation_300ms */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #7f0055; text-decoration: underline; font-size: small; "&gt;while&lt;/STRONG&gt;&lt;SPAN style="text-decoration: underline;"&gt;&lt;SPAN style="font-size: small;"&gt;(!(TIM0TFLG1 &amp;amp; 0x01)); &lt;/SPAN&gt;&lt;SPAN style="color: #3f7f5f; font-size: small; "&gt;/* wait for PT0 to go high */&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please let me know your all&amp;nbsp;valuable comments and suggestion.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You,&lt;/P&gt;&lt;P&gt;Shubhangi Mahajan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 May 2019 06:00:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12z-16-bit-timer/m-p/892566#M16401</guid>
      <dc:creator>shubhangi_mahaj</dc:creator>
      <dc:date>2019-05-14T06:00:55Z</dc:date>
    </item>
    <item>
      <title>Re: S12z 16 bit timer</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12z-16-bit-timer/m-p/892567#M16402</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;PTP_PTP6=1; &amp;lt;-- takes few bus cycles&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;TIM0TC0 = TIM0TCNT + 65535 ;&lt;/SPAN&gt; &amp;lt;-- takes few cycles as well&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #7f0055; text-decoration: underline; font-size: small; "&gt;&lt;STRONG&gt;while&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;SPAN style="text-decoration: underline; font-size: small; "&gt;(!(TIM0TFLG1 &amp;amp; 0x01));&amp;nbsp; &amp;lt;-- even this takes time&lt;SPAN style="text-decoration: underline; font-size: small; "&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small;"&gt;You didn't take into account these. To produce more expected results you should calculate next compare time based on previous &lt;SPAN style="font-size: small;"&gt;TC0 compare setting, not based on&amp;nbsp;free running TCNT. Only first compare value should be set relative to TCNT, all further compares relative to TC0. This would help not loosing time track. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: small; "&gt;Regarding missing compare with TCNT+1..TCNT+5.&amp;nbsp;I don't remember what those SCRx number settings mean (wouldn't you mind using meaningful defines next time, please), I guess you are using fast flag reset. Su you read TCNT, calculate new compare setting and write it&amp;nbsp;to TC0, which is probably late compared to&amp;nbsp;already advanced TCNT, you reset flag and just wait for full timer overflow period. It is tricky to be on time&amp;nbsp;with small delays, but timer does its task well. It is up to you to choose implicit fast flag clear mode or explicit flag clear mode, as well to provide you never miss events. &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 14 May 2019 10:09:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/S12z-16-bit-timer/m-p/892567#M16402</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2019-05-14T10:09:41Z</dc:date>
    </item>
  </channel>
</rss>

