<?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: PIT Timer example in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725286#M44385</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Abdul&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reference the uTasker Open Source project on GIT hub:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KE02Z40M.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KE02Z40M.html&lt;/A&gt;&lt;BR /&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KE02Z.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KE02Z.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PIT document: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fdocs%2FuTasker%2FuTaskerHWTimers.PDF" rel="nofollow" target="_blank"&gt;http://www.utasker.com/docs/uTasker/uTaskerHWTimers.PDF&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attached is the PIT driver that works on all Kinetis parts with PIT or LPIT as reference, including all KE parts too.&lt;BR /&gt;PIT emulation is included in the project for approx. real-time testing of all project operation in Visual Studio (including interrupts and PIT DMA/ADC triggering).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 21 Nov 2017 16:26:29 GMT</pubDate>
    <dc:creator>mjbcswitzerland</dc:creator>
    <dc:date>2017-11-21T16:26:29Z</dc:date>
    <item>
      <title>PIT Timer example</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725285#M44384</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi guys&lt;/P&gt;&lt;P&gt;I am using KE02Z64VQH2 ARM Processor with Kinetic Design Studio. I want to use PIT Timer to interrupt after every 1sec and toggle an LED, Kindly give me working example program for it.&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Nov 2017 12:23:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725285#M44384</guid>
      <dc:creator>abdulhayee</dc:creator>
      <dc:date>2017-11-21T12:23:28Z</dc:date>
    </item>
    <item>
      <title>Re: PIT Timer example</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725286#M44385</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Abdul&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reference the uTasker Open Source project on GIT hub:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KE02Z40M.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KE02Z40M.html&lt;/A&gt;&lt;BR /&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KE02Z.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KE02Z.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PIT document: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fdocs%2FuTasker%2FuTaskerHWTimers.PDF" rel="nofollow" target="_blank"&gt;http://www.utasker.com/docs/uTasker/uTaskerHWTimers.PDF&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Attached is the PIT driver that works on all Kinetis parts with PIT or LPIT as reference, including all KE parts too.&lt;BR /&gt;PIT emulation is included in the project for approx. real-time testing of all project operation in Visual Studio (including interrupts and PIT DMA/ADC triggering).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 21 Nov 2017 16:26:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725286#M44385</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2017-11-21T16:26:29Z</dc:date>
    </item>
    <item>
      <title>Re: PIT Timer example</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725287#M44386</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Mark Butcher.As i am new to ARM processor and know about it a little bit. Can you tell me what is UTasker? is it a simulator or something else? from where it can be downloaded?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Nov 2017 07:36:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725287#M44386</guid>
      <dc:creator>abdulhayee</dc:creator>
      <dc:date>2017-11-22T07:36:36Z</dc:date>
    </item>
    <item>
      <title>Re: PIT Timer example</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725288#M44387</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Abdul&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The uTasker project is described at &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Findex.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/index.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;It is a complete project that essentially runs on (virtually) all Kinetis processors including turn-key solution for most functions required in projects that is also IDE independent and allows complete Kinetis/project simulation. Below I have copied the features (also found at the link).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;You can get the free Open Source version from &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FuTasker%2FuTasker-Kinetis" rel="nofollow" target="_blank"&gt;https://github.com/uTasker/uTasker-Kinetis&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are various videos to get starting - eg.&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DK8ScSgpgQ6M%26index%3D9%26list%3DPLWKlVb_MqDQFZAulrUywU30v869JBYi9Q" rel="nofollow" target="_blank"&gt;https://www.youtube.com/watch?v=K8ScSgpgQ6M&amp;amp;index=9&amp;amp;list=PLWKlVb_MqDQFZAulrUywU30v869JBYi9Q&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;and tutorials and documents at &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fdocs%2Fdocumentation.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/docs/documentation.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&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;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;Features - what the µTasker project has to offer&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Small footprint - The µTasker solution is especially suited to projects where an easy to use, slim-line operating system and TCP/IP and/or USB stack are of importance. This makes it ideal for single chip applications where the control of resources is critical but a high level of developer/user comfort can't be compromised.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; µTasker operating system - efficient and easy to use operating system to enable very modular and manageable software. Inter-task queues with flexible timer support. Supports distributed processing features over an integrated fast Ethernet network protocol.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Including option to operate together with FreeRTOS for perfect combination of pre-emptive and co-operative characteristics**.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; µFileSystem and µParameterSystem - Highly efficient internal or SPI FLASH based file system support, optimised for typical embedded applications.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; µtFAT - FAT12/16/32 compatible file system with SD card interface support, optionally integrated into FTP and HTTP servers supporting LFN (long file names) and optional data caching. Operates in internal Flash, NAND Flash, SD cards, external SPI Flash and/or USB memory sticks*.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Emulated FAT - Allows data saved in linear memory (internal flash, external SPI Flash, etc. to be viewed as if it were FAT formatted and also its data formatted for direct importing to data processing application (eg. *.csv)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; User Files support - Allows embedded files in code to be used or mixed with µFileSystem files, including utility for creating an embedded set of user files for simple upload to targets.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Device drivers - UARTs (interrupt, DMA, RS485), I2C, CAN, character LCD, graphical LCD and TFT, Matrix keyboard, ADC, DAC, RTC, PWM, HW timers, port interrupts, etc.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB device/host*/OTG* support - CDC, RNDIS, Audio, MSD, HMI classes, user friendly configuration and interfacing, with buffered streaming mode as well as firmware upload capability.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Special support - DMA library routines (Kinetis, M5223X - uMemcpy, uMemset), Low power task, Time management (RTC, time zones, daylight saving).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TCP/IP stack - ARP, RARP, ICMP, IPv4/IPv6, UDP, DHCP, DNS, TFTP, TCP, dynamic HTTP, HTTP post, FTP server, FTP client, SNMP V1/V2c, multicast with IGMP V1/V2, SNTP, SMTP, POP3, TELNET, NetBIOS and VLAN plus various useful utilities for real-world Internet work. Multiple interface, network (dual-homed) and VLAN capable. RNDIS operation over USB and PPP/Slip over serial**. Integrated with the µTasker operating system for optimal performance.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DSP - Popular Digital Signal Processing functions integrated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cryptography - Popular Cryptographic functions integrated.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Graphical LCD support - µGLCDLib and graphical LCD simulator. Non-blocking FTDI FT800 graphical controller support with integrated emulation**.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Boot Loader - The µTasker project has integrated support for the "Bare-Minimum" boot loader which enables complete and secure software uploads via Ethernet/Internet (FTP and HTTP POST) as well as USB, and occupies less than 2k of FLASH space! Optionally it allows uploads to external SPI FLASH as well as encryption (less than 4k of Flash space).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Serial Boot Loader - The µTasker project includes a stand-alone boot loader allowing deleting and loading new applications over a UART, from an SD-card or a memory stick*, as USB-MSD device, USB-HID or via web server.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Unique µTasker simulator - allows the supported devices and peripherals to be simulated in "real-time" on the PC which can dramatically reduce development times compared to classical development/debug methods on the target.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ready-to-run with pre-configured projects - The µTasker project is delivered with setups for GCC make file building, IAR, Keil uVision, Rowley CrossWorks, CodeWarrior, Kinetis Design Studio (KDS), CooCox CoIDE, Atollic, Green Hills and MCUXpress. The µTasker project is a high quality framework designed for immediate used as base for professional work.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 22 Nov 2017 18:20:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725288#M44387</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2017-11-22T18:20:27Z</dc:date>
    </item>
    <item>
      <title>Re: PIT Timer example</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725289#M44388</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Abdul,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please test the attached 'PIT interrupt toggle PTH1 KE02 KDS3.2 PE' example.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="PIT interrupt toggle PTH1 KE02 KDS3.2.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/34730i8904B0EFCE8134BF/image-size/large?v=v2&amp;amp;px=999" role="button" title="PIT interrupt toggle PTH1 KE02 KDS3.2.png" alt="PIT interrupt toggle PTH1 KE02 KDS3.2.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Robin&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;BR /&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;BR /&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Nov 2017 07:25:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725289#M44388</guid>
      <dc:creator>Robin_Shen</dc:creator>
      <dc:date>2017-11-23T07:25:33Z</dc:date>
    </item>
    <item>
      <title>Re: PIT Timer example</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725290#M44389</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Robin for your help..as i am learning ARM processor and pointers and structure make me so much confuse. Can you give me an example without using PE (processor expert) tool? simply by accessing the registers directly.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Nov 2017 08:26:51 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725290#M44389</guid>
      <dc:creator>abdulhayee</dc:creator>
      <dc:date>2017-11-23T08:26:51Z</dc:date>
    </item>
    <item>
      <title>Re: PIT Timer example</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725291#M44390</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I tried to write the code for PIT Timer but it is not working.can anyone modify the code so that the program can be run&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include "MKE02Z2.h"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define FALSE &amp;nbsp;&amp;nbsp; &amp;nbsp;0&lt;BR /&gt;#define TRUE &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#define LED0_Init()&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;GPIOB-&amp;gt;PDDR |= (1&amp;lt;&amp;lt;25)&amp;nbsp;&amp;nbsp;&amp;nbsp; /*! RED Light */&lt;BR /&gt;#define LED0_Toggle()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOB-&amp;gt;PTOR = (1&amp;lt;&amp;lt;25)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;__STATIC_INLINE void PIT_Enable(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT-&amp;gt;MCR &amp;amp;= ~PIT_MCR_MDIS_MASK;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;__STATIC_INLINE void PIT_ChannelEnableInt(uint8_t u8channel)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT-&amp;gt;CHANNEL[u8channel].TCTRL |= PIT_TCTRL_TIE_MASK;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;__STATIC_INLINE void PIT_ChannelEnableChain(uint8_t u8channel)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT-&amp;gt;CHANNEL[u8channel].TCTRL |= PIT_TCTRL_CHN_MASK;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;__STATIC_INLINE void PIT_ChannelEnable(uint8_t u8channel)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT-&amp;gt;CHANNEL[u8channel].TCTRL |= PIT_TCTRL_TEN_MASK;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;enum&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_CHANNEL0=0,&amp;nbsp;&amp;nbsp; &amp;nbsp;//&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT Channel 0&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_CHANNEL1 &amp;nbsp;&amp;nbsp; &amp;nbsp;//&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT Channel 1&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;typedef struct&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t bFreeze&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;:1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t bModuleDis&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;:1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t bReversed0&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;:1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t bReversed1&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;:5;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t bTimerEn&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;:1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t bInterruptEn&amp;nbsp;&amp;nbsp; &amp;nbsp;:1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t bChainMode&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;:1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t bReversed2&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;:5;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t bFlag&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;:1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint8_t bReversed3&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;:7;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t u32LoadValue ;&lt;BR /&gt;}PIT_ConfigType, *PIT_ConfigPtr;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#ifndef NULL&lt;BR /&gt;#define NULL&amp;nbsp; (void *) 0&lt;BR /&gt;#endif&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;typedef void (*PIT_CallbackType)(void);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PIT_CallbackType PIT_Callback[2] = {(PIT_CallbackType)NULL};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void PIT_SetLoadVal(uint8_t u8channel, uint32_t u32LoadValue)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT-&amp;gt;CHANNEL[u8channel].LDVAL = u32LoadValue;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void PIT_SetCallback(uint8_t u8channel_No, PIT_CallbackType pfnCallback)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_Callback[u8channel_No] = pfnCallback;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void PIT_Init(uint8_t u8channel_No, PIT_ConfigType *pConfig)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SIM-&amp;gt;SCGC |= SIM_SCGC_PIT_MASK;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// enable clock to PIT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(pConfig-&amp;gt;bModuleDis == 0)&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_Enable();&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;// enable PIT Module&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_SetLoadVal(u8channel_No, pConfig-&amp;gt;u32LoadValue);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(pConfig-&amp;gt;bInterruptEn)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(u8channel_No)&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_EnableIRQ(PIT_CH1_IRQn);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;else&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_EnableIRQ(PIT_CH0_IRQn);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_ChannelEnableInt(u8channel_No);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;else&amp;nbsp;&amp;nbsp; &amp;nbsp;NVIC_DisableIRQ(PIT_CH0_IRQn);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(pConfig-&amp;gt;bChainMode)&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_ChannelEnableChain(u8channel_No);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(pConfig-&amp;gt;bTimerEn)&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_ChannelEnable(u8channel_No);&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void PIT_Task(void);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;int main(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint32_t u32LoadValue0, u32LoadValue1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_ConfigType sPITConfig0, sPITConfig1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_ConfigType *pPIT_Config1 = &amp;amp;sPITConfig1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_ConfigType *pPIT_Config0 = &amp;amp;sPITConfig0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LED0_Init();&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;u32LoadValue0 = 0xF423F;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;u32LoadValue1 = 0x10;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*Configure PIT channel 1 in Chain Mode, enable interrupt and Timer*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config1-&amp;gt;u32LoadValue&amp;nbsp;&amp;nbsp; &amp;nbsp;= u32LoadValue1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config1-&amp;gt;bFreeze&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;= FALSE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config1-&amp;gt;bModuleDis&amp;nbsp;&amp;nbsp; &amp;nbsp;= FALSE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config1-&amp;gt;bInterruptEn&amp;nbsp;&amp;nbsp; &amp;nbsp;= TRUE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config1-&amp;gt;bChainMode&amp;nbsp;&amp;nbsp; &amp;nbsp;= FALSE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config1-&amp;gt;bTimerEn&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;= TRUE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;/*Configure PIT channel 0, only enable Timer*/&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config0-&amp;gt;u32LoadValue&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = u32LoadValue0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config0-&amp;gt;bFreeze&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = FALSE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config0-&amp;gt;bModuleDis&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = FALSE;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*!&amp;lt; enable PIT module */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config0-&amp;gt;bInterruptEn&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = FALSE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config0-&amp;gt;bChainMode&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = FALSE;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pPIT_Config0-&amp;gt;bTimerEn&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = TRUE;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_Init(PIT_CHANNEL0, pPIT_Config0);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_Init(PIT_CHANNEL1, pPIT_Config1);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;PIT_SetCallback(PIT_CHANNEL1,PIT_Task);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* This for loop should be replaced. By default this loop allows a single stepping. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (;;) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Never leave main */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return 0;&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;void PIT_Task(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;LED0_Toggle();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*!&amp;lt; toggle LED1 */&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 23 Nov 2017 09:42:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725291#M44390</guid>
      <dc:creator>abdulhayee</dc:creator>
      <dc:date>2017-11-23T09:42:14Z</dc:date>
    </item>
    <item>
      <title>Re: PIT Timer example</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725292#M44391</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is how I do it at the application level:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT_SETUP pit_setup;&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;&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; // PIT interrupt configuration parameters&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _CONFIG_DRIVE_PORT_OUTPUT_VALUE(B, (KE_PORTH_BIT1), (KE_PORTH_BIT1), (PORT_DSE_LOW)); // configure output to be used&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pit_setup.int_type = PIT_INTERRUPT;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pit_setup.mode = PIT_PERIODIC;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pit_setup.int_handler = pit_irq;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pit_setup.int_priority = PIT0_INTERRUPT_PRIORITY;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pit_setup.count_delay = PIT_US_DELAY(500);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // 500us period&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pit_setup.ucPIT = 0;&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;&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; // use PIT0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnConfigureInterrupt((void *)&amp;amp;pit_setup);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // configure PIT and starts its operation&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and the interrupt call back is&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;static void pit_irq(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _TOGGLE_PORT(B, KE_PORTH_BIT1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&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;The (simplified) low level code for the KE02 (channel 0) is&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; POWER_UP_ATOMIC(6, PIT);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // ensure the PIT module is powered up&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT0_MCR = 0;&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;&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; // ensure the PIT module is clocked&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fnEnterInterrupt(irq_PIT0_ID, PIT_settings-&amp;gt;int_priority, pit_irq); // ensure that the handler for this PIT is entered, prioritised and enabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT0_LDVAL = PIT_settings-&amp;gt;count_delay;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // load interval value&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE_ONE_TO_CLEAR(PIT0_TFLG, PIT_TFLG_TIF);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear possible pending interrupt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PIT0_TCTRL = (PIT_TCTRL_TEN | PIT_TCTRL_TIE);&amp;nbsp;&amp;nbsp;&amp;nbsp; // start PIT with interrupt enabled&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In the interrupt handler (if using a raw interrupt) the interrupt must also be cleared with &lt;BR /&gt;&lt;SPAN style="font-family: courier new, courier, monospace; font-size: 12px;"&gt;WRITE_ONE_TO_CLEAR(PIT0_TFLG, PIT_TFLG_TIF);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear pending interrupts&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As long as your environment has enabled interrupts and can enter a handler this is all that is needed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Nov 2017 04:22:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/PIT-Timer-example/m-p/725292#M44391</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2017-11-24T04:22:26Z</dc:date>
    </item>
  </channel>
</rss>

