<?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 Re: TIMERS AND PROCESSOR EXPERT in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/TIMERS-AND-PROCESSOR-EXPERT/m-p/207730#M17604</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you BigMac. i just wanted to let you know, i had also asked this question on Stackoverflow(electrical engineering), where i posted your answer to close the question. If that is in any way, a problem for you please do let me know.&lt;/P&gt;&lt;P&gt;You have been a great help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 17 Dec 2012 10:39:31 GMT</pubDate>
    <dc:creator>sheetanshkaushi</dc:creator>
    <dc:date>2012-12-17T10:39:31Z</dc:date>
    <item>
      <title>TIMERS AND PROCESSOR EXPERT</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/TIMERS-AND-PROCESSOR-EXPERT/m-p/207728#M17602</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;HI!&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;I am using MC9S08AW60A with DEMO9S08AW60E Board&lt;SPAN&gt;. I have studied about the timers given with the MCU. I wish to know how exactly to Implement timers by code as i have tried using PROCESSOR EXPERT but no effect. I have uploaded a pic of the PE settings that i had implemented. I have also uploaded the pdf of the chip and the Board. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;The idea of the code is to sequentially blink the LED's without using a "Delay Function", rather by modifying the TIMER functionality.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;the code is as follows( very basic, works if i use a delay function):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;------------CODE BEGINS------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;PTFDD = 0xFF;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;for (i=1;i&amp;lt;=8;i++)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i==8) i = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i==1) PTFD = 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i==2) PTFD = 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i==3) PTFD = 0x04;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i==4) PTFD = 0x08;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i==5) PTFD = 0x10;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i==6) PTFD = 0x20;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i==7) PTFD = 0x40;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker" style="font-size: 12pt;"&gt;----------CODE ENDS-----------------&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;SPAN class="mce_paste_marker" style="font-size: 12pt;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="mce_paste_marker" style="font-size: 12pt;"&gt;for the sake of clarity, in the PE1 pic, the black dots mean 1 and white dots mean 0. And yes, i am using virtual PC. before this the codes i tried to excecute, worked perfectly fine. &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;SPAN class="mce_paste_marker" style="font-size: 12pt;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;Concurrently, According to the architecture, the TPM are on PORTF pins, as are the LED's does this affect the outocme. I guess No, but i just want to confirm. Does it?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;then, if i have initialized with PE, does it mean i should also mannually code the same??&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12pt;"&gt;Thanks in advance!&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;SPAN style="font-size: 12pt;"&gt; &lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;SPAN class="mce_paste_marker" style="font-size: 12pt;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min-height: 8pt; padding: 0px;"&gt;&lt;SPAN class="mce_paste_marker" style="font-size: 12pt;"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Dec 2012 13:46:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/TIMERS-AND-PROCESSOR-EXPERT/m-p/207728#M17602</guid>
      <dc:creator>sheetanshkaushi</dc:creator>
      <dc:date>2012-12-13T13:46:58Z</dc:date>
    </item>
    <item>
      <title>Re: TIMERS AND PROCESSOR EXPERT</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/TIMERS-AND-PROCESSOR-EXPERT/m-p/207729#M17603</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The timing associated with the blinking of LEDs is usually of a relatively lengthy duration, but does not require critical timing.&amp;nbsp; The hardware output(s) from the TPM channel would generally not be directly used since this would require a large prescale setting, and may not even be feasible for high bus frequencies.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The usual method is to generate a periodic "tick" at a specific interval, with the flash period for each LED corresponding to an integral number of tick intervals.&amp;nbsp; A TPM channel might be utilised to generate the tick period, making use of the "software" compare mode.&amp;nbsp; A suitable tick period for this example might be 10 milliseconds. The tick timing would be handled using the TPM channel interrupt, but the LED flashing would probably use polling to test for the completion of each flash period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following code snippet demonstrates the process using a LED flash interval of 500 ms.&amp;nbsp; I have not shown the initialisation required for the bus frequency, the TPM, and other modules.&amp;nbsp; You could make use of the PE initialisation tool for this purpose. although my personal preference is to write my own initialisation code, including more meaningful documentation than provided by PE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;// Assumed bus frequency: 8.0 MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;// TPM prescale divisor:&amp;nbsp; 4&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;// Global variables:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;byte tic_cnt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Timer tick counter&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;byte ch_nbr;&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; // LED channel number&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;// LED mask values:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#define mLED0&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#define mLED1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x02&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#define mLED2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x04&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#define mLED3&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x08&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#define mLED4&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#define mLED5&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x20&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#define mLED6&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x40&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#define mLED7&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x80&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;#define TIC_INCR 20000&amp;nbsp;&amp;nbsp;&amp;nbsp; // 10 ms tick period, with prescale 4&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;//***************************************************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;// LED blink polling function&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;void LED_poll( void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp; if (!tic_cnt) {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Timeout occurred&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tic_cnt = 50;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Start new 500ms timing interval&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ch_nbr++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ch_nbr == 8)&amp;nbsp; ch_nbr = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ch_nbr == 0)&amp;nbsp; PTFD = mLED0;&amp;nbsp; // Turn LED0 on, other LEDs off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ch_nbr == 1)&amp;nbsp; PTFD = mLED1;&amp;nbsp; // Turn LED1 on, other LEDs off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ch_nbr == 2)&amp;nbsp; PTFD = mLED2;&amp;nbsp; // Turn LED2 on, other LEDs off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ch_nbr == 3)&amp;nbsp; PTFD = mLED3;&amp;nbsp; // Turn LED3 on, other LEDs off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ch_nbr == 4)&amp;nbsp; PTFD = mLED4;&amp;nbsp; // Turn LED4 on, other LEDs off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ch_nbr == 5)&amp;nbsp; PTFD = mLED5;&amp;nbsp; // Turn LED5 on, other LEDs off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ch_nbr == 6)&amp;nbsp; PTFD = mLED6;&amp;nbsp; // Turn LED6 on, other LEDs off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ch_nbr == 7)&amp;nbsp; PTFD = mLED7;&amp;nbsp; // Turn LED7 on, other LEDs off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;//***************************************************************&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;__interrupt VectorNumber_Vtpm1ch0 void ISR_TPM1_ch0( void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp; TPM1C0_CH0F = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Clear TPM channel flag&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp; TPM1C0V += TIC_INCR;&amp;nbsp;&amp;nbsp; // Set next software compare&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp;&amp;nbsp; if (tic_cnt)&amp;nbsp; tic_cnt--;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mac&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Dec 2012 02:06:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/TIMERS-AND-PROCESSOR-EXPERT/m-p/207729#M17603</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2012-12-17T02:06:54Z</dc:date>
    </item>
    <item>
      <title>Re: TIMERS AND PROCESSOR EXPERT</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/TIMERS-AND-PROCESSOR-EXPERT/m-p/207730#M17604</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you BigMac. i just wanted to let you know, i had also asked this question on Stackoverflow(electrical engineering), where i posted your answer to close the question. If that is in any way, a problem for you please do let me know.&lt;/P&gt;&lt;P&gt;You have been a great help.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Dec 2012 10:39:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/TIMERS-AND-PROCESSOR-EXPERT/m-p/207730#M17604</guid>
      <dc:creator>sheetanshkaushi</dc:creator>
      <dc:date>2012-12-17T10:39:31Z</dc:date>
    </item>
  </channel>
</rss>

