<?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: ADC inject trigger in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1782996#M65875</link>
    <description>&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/t5/user/viewprofilepage/user-id/26034" target="_self"&gt;&lt;SPAN class=""&gt;xiangjun_rong&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; This code ADC inject trigger. Correct&lt;/P&gt;&lt;P&gt;or not if not means which line in change to program please guide me&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM_TrigAdc&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK | SIM_SCGC6_FTM0_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00; &lt;/SPAN&gt;&lt;SPAN&gt;// enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PORTD-&amp;gt;PCR[6] = PORT_PCR_MUX(3);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PORTC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PCR&lt;/SPAN&gt;&lt;SPAN&gt;[1] = PORT_PCR_MUX(4);&lt;/SPAN&gt;&lt;SPAN&gt;// PDC6 as FTM0_CH6&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PDDR&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// PTC direction register, PTD6 is in output mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONF&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CONF_BDMMODE(3);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;FMS&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MODE&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_MODE_WPDIS_MASK | FTM_MODE_FAULTM(0x05);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MOD&lt;/SPAN&gt;&lt;SPAN&gt; = 699-1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[0].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// High_Low_high for center-alignment&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[0].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt; = 349; &lt;/SPAN&gt;&lt;SPAN&gt;// in complementary, C6V is used to control duty cycle&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_COMBINE_COMBINE2_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_COMBINE_DTEN1_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DEADTIME&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_DEADTIME_DTVAL(31); &lt;/SPAN&gt;&lt;SPAN&gt;// dead time is 31 system clock cycles&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CNTIN&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// triggering ADC at the center point of PWM signal while PWM is set up in center alignment mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_SC_CLKS(1) | FTM_SC_PS(0x00); &lt;/SPAN&gt;&lt;SPAN&gt;// PWM center alignment, system clock driving, dividing by 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;asm&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;nop&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;EXTTRIG&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_EXTTRIG_CH5TRIG_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//FTM0-&amp;gt;EXTTRIG |= FTM_EXTTRIG_CH6TRIG_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;ISER&lt;/SPAN&gt;&lt;SPAN&gt;[0] |= (1 &amp;lt;&amp;lt; 9);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_SC_TOIE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PTOR&lt;/SPAN&gt;&lt;SPAN&gt; = 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// Toggle indicator&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;sample[0] = ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;R&lt;/SPAN&gt;&lt;SPAN&gt;[0]; &lt;/SPAN&gt;&lt;SPAN&gt;// Store ADC sample value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__NOP();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; &amp;amp;= ~FTM_SC_TOF_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// Clear Timer Overflow Flag&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;AdcInit&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00; &lt;/SPAN&gt;&lt;SPAN&gt;// enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// enable ADC0 clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG1&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_CFG1_ADIV(1) | ADC_CFG1_MODE(1) | ADC_CFG1_ADICLK(0); &lt;/SPAN&gt;&lt;SPAN&gt;// ADC clock is bus clock/2, bus clock is 20M, ADC clock is 10MHz&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG2&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_SC2_ADTRG_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// hardware triggered&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt;= ADC_SC2_ADACT_MASK ;&lt;/SPAN&gt;&lt;SPAN&gt;//conversion start&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC3&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(8); &lt;/SPAN&gt;&lt;SPAN&gt;// interrupt enable and select ADC0_SE8 channel&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// set FTM0 to trigger ADC0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SOPT7&lt;/SPAN&gt;&lt;SPAN&gt; = SIM_SOPT7_ADC0TRGSEL(0x0A) | SIM_SOPT7_ADC0ALTTRGEN_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// FTM0 trigger ADC0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Enable ADC0 interrupt in NVIC&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;ADC0_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__ASM(&lt;/SPAN&gt;&lt;SPAN&gt;"CPSIE I"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;ADC0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PTOR&lt;/SPAN&gt;&lt;SPAN&gt; = 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// toggle indicator&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;sample[0] = ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;R&lt;/SPAN&gt;&lt;SPAN&gt;[0];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__NOP();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;int&lt;/SPAN&gt; &lt;SPAN&gt;main&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BOARD_InitBootPins();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BOARD_InitBootClocks();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BOARD_InitBootPeripherals();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;AdcInit();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_TrigAdc();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK | SIM_SCGC6_FTM0_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#ifndef&lt;/SPAN&gt;&lt;SPAN&gt; BOARD_INIT_DEBUG_CONSOLE_PERIPHERAL&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BOARD_InitDebugConsole();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PRINTF("Hello World\r\n");&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PRINTF("Hello World\r\n");&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"%d"&lt;/SPAN&gt;&lt;SPAN&gt;,sample[0]);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;volatile&lt;/SPAN&gt; &lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt;&lt;SPAN&gt; i = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;while&lt;/SPAN&gt;&lt;SPAN&gt;(1)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;i++;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//GETCHAR();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//sample[0] = ADC0-&amp;gt;R[0];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__asm&lt;/SPAN&gt; &lt;SPAN&gt;volatile&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;nop&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;PANDI&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
    <pubDate>Thu, 04 Jan 2024 11:19:47 GMT</pubDate>
    <dc:creator>pandi</dc:creator>
    <dc:date>2024-01-04T11:19:47Z</dc:date>
    <item>
      <title>ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1781186#M65849</link>
      <description>&lt;P&gt;In mkv31f512vll12 controller how to configure ADC inject trigger with PWM Ontime&amp;nbsp; duty triggered how to configure?&lt;span class="lia-inline-image-display-wrapper lia-image-align-right" image-alt="WhatsApp Image 2023-12-23 at 4.02.17 PM.jpeg" style="width: 562px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/256230i50A549AD951F4EBD/image-size/large?v=v2&amp;amp;px=999" role="button" title="WhatsApp Image 2023-12-23 at 4.02.17 PM.jpeg" alt="WhatsApp Image 2023-12-23 at 4.02.17 PM.jpeg" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 29 Dec 2023 09:44:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1781186#M65849</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2023-12-29T09:44:44Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1781445#M65853</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;If you want to use hardware triggering mode, you have to configure:&lt;/P&gt;
&lt;P&gt;1)set the ADCx_SC2[ADTRG] bit, it means that the ADC will be triggered by the hardware instead of software&lt;/P&gt;
&lt;P&gt;2)configure the SIM_SOPT7 register, it defines the triggering source of ADC. For detailed inf, pls refer to section 3.7.1.7 ADC triggers in the RM of KV31&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="xiangjun_rong_0-1704173157320.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/256298i7F6B1D240C323B36/image-size/medium?v=v2&amp;amp;px=400" role="button" title="xiangjun_rong_0-1704173157320.png" alt="xiangjun_rong_0-1704173157320.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;For example, if you select PIT trigger 0, you have to configure the PIT channel0 so that PIT channel0 can generate triggering signal, while configure SIM_SOPT7[ADCxTRGSEL]=4;&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jan 2024 05:29:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1781445#M65853</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-01-02T05:29:29Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1781643#M65854</link>
      <description>&lt;LI-SPOILER&gt;&amp;nbsp;&lt;/LI-SPOILER&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;hi,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;xiangjun_rong,&lt;/SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;ADC inject trigger with PWM Ontime duty trigger&amp;nbsp; register level code or function level code guide me how to&amp;nbsp;configure step by step&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt; &lt;SPAN&gt;"board.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt; &lt;SPAN&gt;"fsl_debug_console.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt; &lt;SPAN&gt;"fsl_adc16.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt; &lt;SPAN&gt;"fsl_ftm.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt; &lt;SPAN&gt;"fsl_common.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt; &lt;SPAN&gt;"pin_mux.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt;&lt;SPAN&gt;"fsl_port.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//#include"pin_mux.c"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt; &lt;SPAN&gt;&amp;lt;stdio.h&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#include&lt;/SPAN&gt; &lt;SPAN&gt;"peripherals.h"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DEMO_ADC16_BASE ADC0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DEMO_ADC16_CHANNEL_GROUP 0U&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DEMO_ADC16_USER_CHANNEL 8U&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DEMO_PWM_BASE FTM0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#define&lt;/SPAN&gt;&lt;SPAN&gt; DEMO_PWM_CHANNEL 0U&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;volatile&lt;/SPAN&gt; &lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; pwmDutyCyclePercent = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; result = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;adc16_channel_config_t&lt;/SPAN&gt;&lt;SPAN&gt; adc16ChannelConfigStruct;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//volatile uint32_t read = *((uint32_t*)0x00080000);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;BOARD_InitPWM&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ftm_config_t&lt;/SPAN&gt;&lt;SPAN&gt; ftmInfo;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_GetDefaultConfig(&amp;amp;ftmInfo);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Initialize FTM module */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_Init(DEMO_PWM_BASE, &amp;amp;ftmInfo);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Set the PWM period */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_SetTimerPeriod(DEMO_PWM_BASE, &lt;/SPAN&gt;&lt;SPAN&gt;kFTM_SystemClock&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Configure the PWM channel */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ftm_chnl_pwm_signal_param_t&lt;/SPAN&gt;&lt;SPAN&gt; ftmParam;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ftmParam.&lt;/SPAN&gt;&lt;SPAN&gt;chnlNumber&lt;/SPAN&gt;&lt;SPAN&gt; = DEMO_PWM_CHANNEL;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ftmParam.&lt;/SPAN&gt;&lt;SPAN&gt;level&lt;/SPAN&gt;&lt;SPAN&gt; = &lt;/SPAN&gt;&lt;SPAN&gt;kFTM_HighTrue&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ftmParam.&lt;/SPAN&gt;&lt;SPAN&gt;dutyCyclePercent&lt;/SPAN&gt;&lt;SPAN&gt; = 30;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ftmParam.&lt;/SPAN&gt;&lt;SPAN&gt;firstEdgeDelayPercent&lt;/SPAN&gt;&lt;SPAN&gt; = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// PORT_SetPinMux(BOARD_FTM0_CH0_PORT, BOARD_FTM0_CH0_PIN, kPORT_MuxAlt4);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_SetupPwm(DEMO_PWM_BASE, &amp;amp;ftmParam, 1U, &lt;/SPAN&gt;&lt;SPAN&gt;kFTM_EdgeAlignedPwm&lt;/SPAN&gt;&lt;SPAN&gt;, 25000U, &lt;/SPAN&gt;&lt;SPAN&gt;kFTM_SystemClock&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PORT_SetPinMux(BOARD_FTM0_CH0_PORT, BOARD_FTM0_CH0_PIN, kPORT_MuxAlt4);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PORT_SetPinMux(PORTE,1,1);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PORT_SetPinMux(BOARD_FTM0_CH0_PORT, BOARD_FTM0_CH0_PIN, kPORT_MuxAlt4);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Start the PWM */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_StartTimer(DEMO_PWM_BASE, &lt;/SPAN&gt;&lt;SPAN&gt;kFTM_SystemClock&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;BOARD_InitADC&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;adc16_config_t&lt;/SPAN&gt;&lt;SPAN&gt; adc16ConfigStruct;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC16_GetDefaultConfig(&amp;amp;adc16ConfigStruct);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;adc16ConfigStruct.&lt;/SPAN&gt;&lt;SPAN&gt;resolution&lt;/SPAN&gt;&lt;SPAN&gt; = &lt;/SPAN&gt;&lt;SPAN&gt;kADC16_ResolutionSE12Bit&lt;/SPAN&gt;&lt;SPAN&gt;; &lt;/SPAN&gt;&lt;SPAN&gt;// Change as needed&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC16_Init(DEMO_ADC16_BASE, &amp;amp;adc16ConfigStruct);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Configure ADC channel */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;adc16ChannelConfigStruct.&lt;/SPAN&gt;&lt;SPAN&gt;channelNumber&lt;/SPAN&gt;&lt;SPAN&gt; = DEMO_ADC16_USER_CHANNEL;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;adc16ChannelConfigStruct.&lt;/SPAN&gt;&lt;SPAN&gt;enableInterruptOnConversionCompleted&lt;/SPAN&gt;&lt;SPAN&gt; = false;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;adc16ChannelConfigStruct.&lt;/SPAN&gt;&lt;SPAN&gt;enableDifferentialConversion&lt;/SPAN&gt;&lt;SPAN&gt; = false;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC16_SetChannelConfig(DEMO_ADC16_BASE, DEMO_ADC16_CHANNEL_GROUP, &amp;amp;adc16ChannelConfigStruct);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Enable the Injected Conversion */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// ADC16_EnableHardwareTrigger(DEMO_ADC16_BASE, true);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC16_EnableHardwareTrigger(DEMO_ADC16_BASE , false);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//ADC16_EnableInjectedSequences(DEMO_ADC16_BASE , false);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Clear interrupt flag */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_ClearStatusFlags(DEMO_PWM_BASE, &lt;/SPAN&gt;&lt;SPAN&gt;kFTM_Chnl0Flag&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Update PWM duty cycle based on some condition */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;pwmDutyCyclePercent = (result * 100U) / 4095U;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_UpdatePwmDutycycle(DEMO_PWM_BASE, DEMO_PWM_CHANNEL, &lt;/SPAN&gt;&lt;SPAN&gt;kFTM_EdgeAlignedPwm&lt;/SPAN&gt;&lt;SPAN&gt;, pwmDutyCyclePercent);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/*void HardFault_Handler(void){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;while(1){&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}*/&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;int&lt;/SPAN&gt; &lt;SPAN&gt;main&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BOARD_InitPWM();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BOARD_InitADC();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Enable FTM0 interrupt */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;EnableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;FTM0_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_EnableInterrupts(DEMO_PWM_BASE, &lt;/SPAN&gt;&lt;SPAN&gt;kFTM_Chnl0InterruptEnable&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC_SetPriority(&lt;/SPAN&gt;&lt;SPAN&gt;FTM0_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;, 0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;while&lt;/SPAN&gt;&lt;SPAN&gt; (1) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Start an injected conversion with software trigger */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC16_SetChannelConfig(DEMO_ADC16_BASE, DEMO_ADC16_CHANNEL_GROUP, &amp;amp;adc16ChannelConfigStruct);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//ADC16_DoSoftwareTrigger(DEMO_ADC16_BASE);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PORT_SetPinMux(BOARD_FTM0_CH0_PORT, BOARD_FTM0_CH0_PIN, kPORT_MuxAlt4);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Wait for the conversion to complete */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;while&lt;/SPAN&gt;&lt;SPAN&gt; (0U == (&lt;/SPAN&gt;&lt;SPAN&gt;kADC16_ChannelConversionDoneFlag&lt;/SPAN&gt;&lt;SPAN&gt; &amp;amp; ADC16_GetChannelStatusFlags(DEMO_ADC16_BASE, DEMO_ADC16_CHANNEL_GROUP)))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Read ADC result */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;result = ADC16_GetChannelConversionValue(DEMO_ADC16_BASE, DEMO_ADC16_CHANNEL_GROUP);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Print the result or use it as needed */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"ADC Result: %d\r\n"&lt;/SPAN&gt;&lt;SPAN&gt;, result);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;/* Delay for a while */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SDK_DelayAtLeastUs(1000000U, SystemCoreClock);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;this program adc inject trigger method if any changes let me know&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;BR&lt;/P&gt;&lt;P&gt;PANDI&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jan 2024 10:13:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1781643#M65854</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2024-01-02T10:13:21Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1781891#M65857</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;Pls refer to the attached an5142.pdf, in the section 3.7. FTM triggering ADC, the FTM triggering ADC is discussed and the code is given.&lt;/P&gt;
&lt;P&gt;But You use both the FTM diver and ADC driver instead of writing register.&lt;/P&gt;
&lt;P&gt;anyway, you have to write the following registers:&lt;/P&gt;
&lt;P&gt;1)set the ADCx_SC2[ADTRG] bit, it means that the ADC will be triggered by the hardware instead of software&lt;/P&gt;
&lt;P&gt;2)configure the SIM_SOPT7 register to select the triggering source&lt;/P&gt;
&lt;P&gt;3)write the FTM0_EXTTRIG to select which CVx register can generate the triggering signal.&lt;/P&gt;
&lt;P&gt;I suppose that you can use the code directly.&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;void FTM_TrigAdc(void)&lt;BR /&gt;{&lt;BR /&gt;SIM_SCGC6|=0x03000000; //enable FTM0 and FTM0 module clock&lt;BR /&gt;SIM_SCGC5=SIM_SCGC5|0x3E00; //enable port A/B/C/D/E clock&lt;BR /&gt;PORTC_PCR7=0x100; //PTC7 in GPIO mode&lt;BR /&gt;GPIOC_PDDR=0x80; //PTC direction register, PTC7 is in output mode&lt;BR /&gt;FTM0_SC=0x00;&lt;BR /&gt;FTM0_CONF=0xC0; //set up BDM in 11&lt;BR /&gt;FTM0_FMS=0x00; //clear the WPEN so that WPDIS is set in FTM0_MODE register&lt;BR /&gt;FTM0_MODE|=0x05; //enable write the FTM CnV register&lt;BR /&gt;FTM0_MOD=1000;&lt;BR /&gt;FTM0_C0SC=0x28; //High_Low_high for center-alignment&lt;BR /&gt;FTM0_C1SC=0x28;&lt;BR /&gt;FTM0_C2SC=0x28;&lt;BR /&gt;FTM0_C3SC=0x28;&lt;BR /&gt;FTM0_C4SC=0x28;&lt;BR /&gt;FTM0_C5SC=0x28;&lt;BR /&gt;FTM0_C6SC=0x28;&lt;BR /&gt;FTM0_COMBINE=0x020202; //complementary mode for CH0&amp;amp;CH1, CH2&amp;amp;CH3 of FTM0&lt;BR /&gt;FTM0_COMBINE|=0x101010; // dead timer insertion enabled in complementary mode //for CH0&amp;amp;CH1 of FTM0&lt;BR /&gt;FTM0_DEADTIME=0x1F; //dead time is 31 system clock cycles&lt;BR /&gt;FTM0_CNTIN=0x00;&lt;BR /&gt;FTM0_C1V=500; //in complementary, C0V/C2V/C4V are used to control duty cycle.&lt;BR /&gt;FTM0_C0V=500; //in complementary mode, C1V/C3V/C5V are not used.&lt;BR /&gt;FTM0_C2V=500;&lt;BR /&gt;FTM0_C3V=500;&lt;BR /&gt;FTM0_C4V=500;&lt;BR /&gt;FTM0_C5V=1000;&lt;BR /&gt;//triggering ADC at the center point of PWM signal while PWM is set up in //center alignment mode&lt;BR /&gt;FTM0_SC=0x28; //PWM center alignment, system clock driving, dividing by 1&lt;BR /&gt;asm("nop");&lt;BR /&gt;//set that FTM0_C5V to trigger ADC, in complementary, C5V is not used to //control duty cycle&lt;BR /&gt;FTM0_EXTTRIG|=0x08;&lt;BR /&gt;}&lt;BR /&gt;unsigned int sample[8];&lt;BR /&gt;void AdcInit(void)&lt;BR /&gt;{&lt;BR /&gt;SIM_SCGC5=SIM_SCGC5|0x3E00; //enable port A/B/C/D/E clock&lt;BR /&gt;SIM_SCGC3|=0x08000000; //enable ADC1 clock&lt;BR /&gt;ADC1_CFG1=0x44; //adc clock is bus clock/2, busclock is 20M, ADC clock is 10MHz&lt;BR /&gt;ADC1_CFG2=0x00;&lt;BR /&gt;ADC1_SC2=0x40; //hardware triggered,&lt;BR /&gt;ADC1_SC3=0x00; //not continuous conversion&lt;BR /&gt;ADC1_SC1A=0x54; //interrupt enable and select ADC1_DM1 channel&lt;BR /&gt;//set that FTM0 to trigger ADC1&lt;BR /&gt;SIM_SOPT7=0x8800; //FTM0 trigger ADC1, alternative triggering, only ADC1_SC1A //conversion is valid&lt;BR /&gt;NVICIP58=0x30; //setting interrupt of ADC1&lt;BR /&gt;PWM Features&lt;BR /&gt;Features of the FlexTimer Module, Rev. 0, 06/2015&lt;BR /&gt;Freescale Semiconductor, Inc. 13&lt;BR /&gt;NVICICPR1|=1&amp;lt;&amp;lt;26; //clear the pending register of interrupt source 58&lt;BR /&gt;NVICISER1|=1&amp;lt;&amp;lt;26; //set the interrupt source of ADC1&lt;BR /&gt;asm("cpsie i"); //interrupt enable&lt;BR /&gt;}&lt;BR /&gt;void ADC_ISR(void)&lt;BR /&gt;{&lt;BR /&gt;GPIOC_PTOR=0x80; //toggle indicator&lt;BR /&gt;sample[0]=ADC1_RA;&lt;BR /&gt;asm("nop");&lt;BR /&gt;//ADC1_SC1A=0x14; //interrupt enable and select ADC1_DM1 channel&lt;BR /&gt;}&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jan 2024 02:11:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1781891#M65857</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-01-03T02:11:23Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1782320#M65867</link>
      <description>&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/t5/user/viewprofilepage/user-id/26034" target="_self"&gt;&lt;SPAN class=""&gt;xiangjun_rong&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I`m changing to register level program but ADC value not reading please guide me&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM_TrigAdc&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Enable clock for ADC0 and FTM0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK | SIM_SCGC6_FTM0_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Enable clock for port B and E&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC5_PORTB_MASK | SIM_SCGC5_PORTE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Configure pin multiplexing for FTM0 channels&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PORTB-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PCR&lt;/SPAN&gt;&lt;SPAN&gt;[18] = PORT_PCR_MUX(3); &lt;/SPAN&gt;&lt;SPAN&gt;// FTM0_CH1, PTB18&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PORTB-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PCR&lt;/SPAN&gt;&lt;SPAN&gt;[19] = PORT_PCR_MUX(3); &lt;/SPAN&gt;&lt;SPAN&gt;// FTM0_CH0, PTB19&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PORTE-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PCR&lt;/SPAN&gt;&lt;SPAN&gt;[1] = PORT_PCR_MUX(3); &lt;/SPAN&gt;&lt;SPAN&gt;// FTM0_CH2, PTE1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Configure FTM0 for PWM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONF&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CONF_BDMMODE(3);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;FMS&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MODE&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_MODE_WPDIS_MASK | FTM_MODE_FAULTM(0x05);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MOD&lt;/SPAN&gt;&lt;SPAN&gt; = 1000;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Configure channels for complementary mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;for&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;int&lt;/SPAN&gt;&lt;SPAN&gt; i = 0; i &amp;lt; 7; ++i) {&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[i].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[i].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt; = 500;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Enable dead time insertion&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_COMBINE_COMBINE0_MASK | FTM_COMBINE_COMBINE1_MASK | FTM_COMBINE_COMBINE2_MASK |&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_COMBINE_COMBINE3_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_COMBINE_DTEN0_MASK | FTM_COMBINE_DTEN1_MASK | FTM_COMBINE_DTEN2_MASK |&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_COMBINE_DTEN3_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DEADTIME&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_DEADTIME_DTVAL(31);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Configure FTM0 for PWM center alignment, system clock driving, dividing by 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_SC_CLKS(1) | FTM_SC_PS(0x00);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Set FTM0_C5V to trigger ADC&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;EXTTRIG&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_EXTTRIG_CH5TRIG_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Set FTM0_C5SC to PWM&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[5].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__NOP();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;AdcInit&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//SIM-&amp;gt;SCGC5 |= 0x3E00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00;&lt;/SPAN&gt;&lt;SPAN&gt;//enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt;|= SIM_SCGC6_ADC1_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;//enable ADC1 clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG1&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_CFG1_ADIV(1) | ADC_CFG1_MODE(1) | ADC_CFG1_ADICLK(0); &lt;/SPAN&gt;&lt;SPAN&gt;// &lt;/SPAN&gt;&lt;SPAN&gt;adc&lt;/SPAN&gt;&lt;SPAN&gt; clock is bus clock/2, bus clock is 20M, ADC clock is 10MHz&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG2&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_SC2_ADTRG_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;//hardware triggered,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC3&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00; &lt;/SPAN&gt;&lt;SPAN&gt;//not continuous conversion&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(4); &lt;/SPAN&gt;&lt;SPAN&gt;//interrupt enable and select ADC1_DM1 channel&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//set that FTM0 to trigger ADC1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SOPT7&lt;/SPAN&gt;&lt;SPAN&gt; = SIM_SOPT7_ADC1TRGSEL(0x09) | SIM_SOPT7_ADC1ALTTRGEN_MASK;&lt;/SPAN&gt;&lt;SPAN&gt;//FTM0 trigger ADC1, alternative triggering, only ADC1_SC1A //conversion is valid&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;ISER&lt;/SPAN&gt;&lt;SPAN&gt;[1] |= (1 &amp;lt;&amp;lt; 26);&lt;/SPAN&gt;&lt;SPAN&gt;//setting interrupt of ADC1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__ASM(&lt;/SPAN&gt;&lt;SPAN&gt;"CPSIE I"&lt;/SPAN&gt;&lt;SPAN&gt;); &lt;/SPAN&gt;&lt;SPAN&gt;//interrupt enable&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;ADC_ISR&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PTOR&lt;/SPAN&gt;&lt;SPAN&gt; = 0x80; &lt;/SPAN&gt;&lt;SPAN&gt;// toggle indicator&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;sample[1] = ADC1-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;R&lt;/SPAN&gt;&lt;SPAN&gt;[0];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//sample[1]=ADC1-&amp;gt;R[1];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__NOP();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//ADC1_SC1A=0x14; //interrupt enable and select ADC1_DM1 channel&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BR&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PANDI&lt;/SPAN&gt;&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 03 Jan 2024 12:51:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1782320#M65867</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2024-01-03T12:51:50Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1782674#M65873</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;For KV31, the ADC1 interrupt vector is 73.&lt;/P&gt;
&lt;P&gt;NVIC-&amp;gt;ISER[2] |= (1 &amp;lt;&amp;lt; 9); //setting interrupt of ADC1&lt;/P&gt;
&lt;P&gt;//NVIC-&amp;gt;ICPR[2] |= (1 &amp;lt;&amp;lt; 9); //clear interrupt&amp;nbsp; pending bit&lt;/P&gt;
&lt;P&gt;Pls check if you can enter ADC1 ISR.&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;</description>
      <pubDate>Thu, 04 Jan 2024 05:05:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1782674#M65873</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-01-04T05:05:48Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1782996#M65875</link>
      <description>&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/t5/user/viewprofilepage/user-id/26034" target="_self"&gt;&lt;SPAN class=""&gt;xiangjun_rong&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; This code ADC inject trigger. Correct&lt;/P&gt;&lt;P&gt;or not if not means which line in change to program please guide me&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM_TrigAdc&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK | SIM_SCGC6_FTM0_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00; &lt;/SPAN&gt;&lt;SPAN&gt;// enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PORTD-&amp;gt;PCR[6] = PORT_PCR_MUX(3);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PORTC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PCR&lt;/SPAN&gt;&lt;SPAN&gt;[1] = PORT_PCR_MUX(4);&lt;/SPAN&gt;&lt;SPAN&gt;// PDC6 as FTM0_CH6&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PDDR&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// PTC direction register, PTD6 is in output mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONF&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CONF_BDMMODE(3);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;FMS&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MODE&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_MODE_WPDIS_MASK | FTM_MODE_FAULTM(0x05);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MOD&lt;/SPAN&gt;&lt;SPAN&gt; = 699-1;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[0].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// High_Low_high for center-alignment&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[0].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt; = 349; &lt;/SPAN&gt;&lt;SPAN&gt;// in complementary, C6V is used to control duty cycle&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_COMBINE_COMBINE2_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_COMBINE_DTEN1_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DEADTIME&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_DEADTIME_DTVAL(31); &lt;/SPAN&gt;&lt;SPAN&gt;// dead time is 31 system clock cycles&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CNTIN&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// triggering ADC at the center point of PWM signal while PWM is set up in center alignment mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_SC_CLKS(1) | FTM_SC_PS(0x00); &lt;/SPAN&gt;&lt;SPAN&gt;// PWM center alignment, system clock driving, dividing by 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;asm&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;nop&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;EXTTRIG&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_EXTTRIG_CH5TRIG_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//FTM0-&amp;gt;EXTTRIG |= FTM_EXTTRIG_CH6TRIG_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;ISER&lt;/SPAN&gt;&lt;SPAN&gt;[0] |= (1 &amp;lt;&amp;lt; 9);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_SC_TOIE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PTOR&lt;/SPAN&gt;&lt;SPAN&gt; = 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// Toggle indicator&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;sample[0] = ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;R&lt;/SPAN&gt;&lt;SPAN&gt;[0]; &lt;/SPAN&gt;&lt;SPAN&gt;// Store ADC sample value&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__NOP();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; &amp;amp;= ~FTM_SC_TOF_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// Clear Timer Overflow Flag&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;AdcInit&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00; &lt;/SPAN&gt;&lt;SPAN&gt;// enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// enable ADC0 clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG1&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_CFG1_ADIV(1) | ADC_CFG1_MODE(1) | ADC_CFG1_ADICLK(0); &lt;/SPAN&gt;&lt;SPAN&gt;// ADC clock is bus clock/2, bus clock is 20M, ADC clock is 10MHz&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG2&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_SC2_ADTRG_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// hardware triggered&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt;= ADC_SC2_ADACT_MASK ;&lt;/SPAN&gt;&lt;SPAN&gt;//conversion start&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC3&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(8); &lt;/SPAN&gt;&lt;SPAN&gt;// interrupt enable and select ADC0_SE8 channel&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// set FTM0 to trigger ADC0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SOPT7&lt;/SPAN&gt;&lt;SPAN&gt; = SIM_SOPT7_ADC0TRGSEL(0x0A) | SIM_SOPT7_ADC0ALTTRGEN_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// FTM0 trigger ADC0&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;// Enable ADC0 interrupt in NVIC&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;ADC0_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__ASM(&lt;/SPAN&gt;&lt;SPAN&gt;"CPSIE I"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;ADC0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PTOR&lt;/SPAN&gt;&lt;SPAN&gt; = 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// toggle indicator&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;sample[0] = ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;R&lt;/SPAN&gt;&lt;SPAN&gt;[0];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__NOP();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;int&lt;/SPAN&gt; &lt;SPAN&gt;main&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BOARD_InitBootPins();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BOARD_InitBootClocks();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BOARD_InitBootPeripherals();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;AdcInit();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM_TrigAdc();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK | SIM_SCGC6_FTM0_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#ifndef&lt;/SPAN&gt;&lt;SPAN&gt; BOARD_INIT_DEBUG_CONSOLE_PERIPHERAL&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;BOARD_InitDebugConsole();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PRINTF("Hello World\r\n");&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PRINTF("Hello World\r\n");&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PRINTF(&lt;/SPAN&gt;&lt;SPAN&gt;"%d"&lt;/SPAN&gt;&lt;SPAN&gt;,sample[0]);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;volatile&lt;/SPAN&gt; &lt;SPAN&gt;static&lt;/SPAN&gt; &lt;SPAN&gt;int&lt;/SPAN&gt;&lt;SPAN&gt; i = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;while&lt;/SPAN&gt;&lt;SPAN&gt;(1)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;i++;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//GETCHAR();&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//sample[0] = ADC0-&amp;gt;R[0];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__asm&lt;/SPAN&gt; &lt;SPAN&gt;volatile&lt;/SPAN&gt;&lt;SPAN&gt; (&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;nop&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;return&lt;/SPAN&gt;&lt;SPAN&gt; 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;PANDI&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 04 Jan 2024 11:19:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1782996#M65875</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2024-01-04T11:19:47Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1783304#M65877</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;1)As I attached the ADC triggering source, the FTM0 index is 4b'1000 or 8, so you have to use the line:&lt;/P&gt;
&lt;P&gt;SIM-&amp;gt;SOPT7 = SIM_SOPT7_ADC0TRGSEL(0x08) | SIM_SOPT7_ADC0ALTTRGEN_MASK; // FTM0 trigger ADC0&lt;/P&gt;
&lt;P&gt;2)For the ADC0 interrupt vector is 39, so you have to write the line:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="xiangjun_rong_0-1704420002628.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/256773i18F2FA92D515E3FD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="xiangjun_rong_0-1704420002628.png" alt="xiangjun_rong_0-1704420002628.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;NVIC-&amp;gt;ISER[1] |= (1 &amp;lt;&amp;lt; 7); //39-32=7&lt;/P&gt;
&lt;P&gt;3)The FTM0 triggers ADC0 and the ADC0 generates interrupt after conversion is over, so it is unnecessary to have FTM generate interrupt. pls comment the line:&lt;/P&gt;
&lt;P&gt;//FTM0-&amp;gt;SC |= FTM_SC_TOIE_MASK;&lt;/P&gt;
&lt;P&gt;4)I suppose that you know the mechanism of the FTM0 triggering ADC0, if you set the line:&lt;/P&gt;
&lt;P&gt;FTM0-&amp;gt;EXTTRIG |= FTM_EXTTRIG_CH5TRIG_MASK;&lt;/P&gt;
&lt;P&gt;SIM-&amp;gt;SOPT7 = SIM_SOPT7_ADC0TRGSEL(0x08) | SIM_SOPT7_ADC0ALTTRGEN_MASK; // FTM0 trigger ADC0&lt;/P&gt;
&lt;P&gt;when the FTM0 counter reaches up to the value of FTM0_C5V, the FTM0 triggering event will happen, because the SIM-&amp;gt;SOPT7 = SIM_SOPT7_ADC0TRGSEL(0x08); the FTM0 triggering event will route to ADC0, because the ADC0 is configured as hardware triggering, the analog channel in ADC0_SC1[0] will be converted with FTM0 triggering event.&lt;/P&gt;
&lt;P&gt;So you have to initialize the FTM0_C5V and the ADC0_SC1[0]&lt;/P&gt;
&lt;P&gt;I suggest you use the original code in the AN, because the code is based on K40, you use KV31, so you have to change the code to adapt to KV31.&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Jan 2024 02:26:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1783304#M65877</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-01-05T02:26:26Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1783727#M65879</link>
      <description>&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/t5/user/viewprofilepage/user-id/26034" target="_self"&gt;&lt;SPAN class=""&gt;xiangjun_rong&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I`m configuration all peripheral but inject trigger not working if anything missing you have to guide me&amp;nbsp;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;AdcInit&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00; &lt;/SPAN&gt;&lt;SPAN&gt;// enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// enable ADC0 clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG1&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_CFG1_ADIV(1) | ADC_CFG1_MODE(1) | ADC_CFG1_ADICLK(0); &lt;/SPAN&gt;&lt;SPAN&gt;// ADC clock is bus clock/2, bus clock is 20M, ADC clock is 10MHz&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG2&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_SC2_ADTRG(1); &lt;/SPAN&gt;&lt;SPAN&gt;// hardware triggered&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt;= ADC_SC2_ADACT(1);&lt;/SPAN&gt;&lt;SPAN&gt;//conversion start&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC3&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(8);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SOPT7&lt;/SPAN&gt;&lt;SPAN&gt; = SIM_SOPT7_ADC0TRGSEL(0x08)| SIM_SOPT7_ADC0ALTTRGEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;ADC0_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__ASM(&lt;/SPAN&gt;&lt;SPAN&gt;"CPSIE I"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM_TrigAdc&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK | SIM_SCGC6_FTM0_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00; &lt;/SPAN&gt;&lt;SPAN&gt;// enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//PORTD-&amp;gt;PCR[6] = PORT_PCR_MUX(3);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PORTC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PCR&lt;/SPAN&gt;&lt;SPAN&gt;[1] = PORT_PCR_MUX(4);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PDDR&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// PTC direction register, PTD6 is in output mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONF&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CONF_BDMMODE(3);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;FMS&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MODE&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_MODE_WPDIS_MASK | FTM_MODE_FAULTM(0x05);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MOD&lt;/SPAN&gt;&lt;SPAN&gt; = 19999;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[0].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//FTM0-&amp;gt;SC = FTM_CnSC_ELSB(1) | FTM_CnSC_ELSA(0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[0].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt; = 9999;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_COMBINE_COMBINE2_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_COMBINE_DTEN1_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DEADTIME&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_DEADTIME_DTVAL(31); &lt;/SPAN&gt;&lt;SPAN&gt;// dead time is 31 system clock cycles&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CNTIN&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_SC_CLKS(0x01) |FTM_SC_CPWMS(0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;asm&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;nop&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//FTM0-&amp;gt;EXTTRIG |= FTM_EXTTRIG_CH0TRIG_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;EXTTRIG&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_EXTTRIG_INITTRIGEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONF&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_CONF_GTBEEN_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// Enable global time base&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONF&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_CONF_GTBEOUT_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;ISER&lt;/SPAN&gt;&lt;SPAN&gt;[1] |= (1 &amp;lt;&amp;lt; 7);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//NVIC-&amp;gt;ICPR[0] |= (1 &amp;lt;&amp;lt; 7);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//FTM0-&amp;gt;SC |= FTM_SC_TOIE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;STATUS&lt;/SPAN&gt;&lt;SPAN&gt; &amp;amp; FTM_STATUS_CH0F_MASK)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;STATUS&lt;/SPAN&gt;&lt;SPAN&gt; &amp;amp;= ~FTM_STATUS_CH0F_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// Clear the channel flag&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(8); &lt;/SPAN&gt;&lt;SPAN&gt;// Start ADC conversion on channel 8&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;ADC0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] &amp;amp; ADC_SC1_COCO_MASK)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PTOR&lt;/SPAN&gt;&lt;SPAN&gt; = 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// Toggle indicator&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;sample[0] = ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;R&lt;/SPAN&gt;&lt;SPAN&gt;[0];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;PANDI&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Fri, 05 Jan 2024 14:23:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1783727#M65879</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2024-01-05T14:23:25Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1784876#M65903</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;A href="https://community.nxp.com/t5/user/viewprofilepage/user-id/26034" target="_self"&gt;&lt;SPAN class=""&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/26034"&gt;@xiangjun_rong&lt;/a&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This program inject ADC trigger or not if inject trigger not means please you guide me i`m configure all peripheral in the program please check it . if any other changes you have guide me&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM_TrigAdc&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK | SIM_SCGC6_FTM0_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00; &lt;/SPAN&gt;&lt;SPAN&gt;// enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;PORTC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PCR&lt;/SPAN&gt;&lt;SPAN&gt;[1] = PORT_PCR_MUX(4);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PDDR&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// PTC direction register, PTD6 is in output mode&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONF&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CONF_BDMMODE(3);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;FMS&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MODE&lt;/SPAN&gt;&lt;SPAN&gt; |= &lt;/SPAN&gt;&lt;SPAN&gt;FTM_MODE_WPDIS_MASK&lt;/SPAN&gt;&lt;SPAN&gt; | FTM_MODE_FAULTM(0x05);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MOD&lt;/SPAN&gt;&lt;SPAN&gt; = 19999;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[0].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[0].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt; = 9999;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_COMBINE_COMBINE2_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_COMBINE_DTEN1_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DEADTIME&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_DEADTIME_DTVAL(31); &lt;/SPAN&gt;&lt;SPAN&gt;// dead time is 31 system clock cycles&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CNTIN&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt; = FTM_SC_CLKS(0x01) |FTM_SC_CPWMS(0);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;asm&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;nop&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;EXTTRIG&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_EXTTRIG_CH0TRIG_MASK ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//FTM0-&amp;gt;EXTTRIG |= FTM_EXTTRIG_INITTRIGEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONF&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_CONF_GTBEEN_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// Enable global time base&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONF&lt;/SPAN&gt;&lt;SPAN&gt; |= FTM_CONF_GTBEOUT_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;ISER&lt;/SPAN&gt;&lt;SPAN&gt;[1] |= (1 &amp;lt;&amp;lt; 7);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//NVIC-&amp;gt;ICPR[0] |= (1 &amp;lt;&amp;lt; 7);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;//FTM0-&amp;gt;SC |= FTM_SC_TOIE_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;STATUS&lt;/SPAN&gt;&lt;SPAN&gt; &amp;amp; FTM_STATUS_CH0F_MASK)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;STATUS&lt;/SPAN&gt;&lt;SPAN&gt; &amp;amp;= ~FTM_STATUS_CH0F_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// Clear the channel flag&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(8); &lt;/SPAN&gt;&lt;SPAN&gt;// Start ADC conversion on channel 8&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;AdcInit&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00; &lt;/SPAN&gt;&lt;SPAN&gt;// enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// enable ADC0 clock&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG1&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_CFG1_ADIV(1) | ADC_CFG1_MODE(1) | ADC_CFG1_ADICLK(0); &lt;/SPAN&gt;&lt;SPAN&gt;// ADC clock is bus clock/2, bus clock is 20M, ADC clock is 10MHz&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG2&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_SC2_ADTRG(1); &lt;/SPAN&gt;&lt;SPAN&gt;// hardware triggered&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt;= ADC_SC2_ADACT(1);&lt;/SPAN&gt;&lt;SPAN&gt;//conversion start&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC3&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(8);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SOPT7&lt;/SPAN&gt;&lt;SPAN&gt; = SIM_SOPT7_ADC0TRGSEL(0x08)| SIM_SOPT7_ADC0ALTTRGEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;ADC0_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;__ASM(&lt;/SPAN&gt;&lt;SPAN&gt;"CPSIE I"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;ADC0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] &amp;amp; ADC_SC1_COCO_MASK)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PTOR&lt;/SPAN&gt;&lt;SPAN&gt; = 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// Toggle indicator&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;sample[0] = ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;R&lt;/SPAN&gt;&lt;SPAN&gt;[0];&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;PANDI&lt;/P&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Tue, 09 Jan 2024 05:19:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1784876#M65903</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2024-01-09T05:19:39Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1785121#M65907</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I have tested on my TWR-KV31 board, I can enter ADC ISR multiple times, so it is okay.&lt;/P&gt;
&lt;P&gt;For your issue, you do not set the ADCx_SC2[]ADTRG] bit, because you set it, then clear it with the two lines.&lt;/P&gt;
&lt;P&gt;ADC0-&amp;gt;SC2 = ADC_SC2_ADTRG(1); // hardware triggered&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ADC0-&amp;gt;SC2= ADC_SC2_ADACT(1);//conversion start&lt;/P&gt;
&lt;P&gt;Pls use the following code, I run it, it works fine.&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;DIV style="background-color: #ffffff; padding: 0px 0px 0px 2px;"&gt;
&lt;DIV style="color: #000000; background-color: #ffffff; font-family: 'Consolas'; font-size: 10pt; white-space: nowrap;"&gt;
&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM_TrigAdc&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK | SIM_SCGC6_FTM0_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00; &lt;/SPAN&gt;&lt;SPAN&gt;// enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;PORTC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PCR&lt;/SPAN&gt;&lt;SPAN&gt;[1] = PORT_PCR_MUX(4);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PDDR&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// PTC direction register, PTD6 is in output mode&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;#if&lt;/SPAN&gt;&lt;SPAN&gt; 0&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;SC = 0x00;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;CONF = FTM_CONF_BDMMODE(3);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;FMS = 0x00;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;MODE |= FTM_MODE_WPDIS_MASK | FTM_MODE_FAULTM(0x05);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;MOD = 19999;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;CONTROLS[0].CnSC = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;//FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;CONTROLS[0].CnV = 9999;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;COMBINE = FTM_COMBINE_COMBINE2_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;COMBINE |= FTM_COMBINE_DTEN1_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;DEADTIME = FTM_DEADTIME_DTVAL(31); &lt;/SPAN&gt;&lt;SPAN&gt;// dead time is 31 system clock cycles&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;CNTIN = 0x00;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;SC = FTM_SC_CLKS(0x01) |FTM_SC_CPWMS(0);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;asm&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;nop&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;EXTTRIG |= FTM_EXTTRIG_CH0TRIG_MASK ;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;//FTM0-&amp;gt;EXTTRIG |= FTM_EXTTRIG_INITTRIGEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;CONF |= FTM_CONF_GTBEEN_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// Enable global time base&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;FTM0-&amp;gt;CONF |= FTM_CONF_GTBEOUT_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="background-color: #e0e0e0;"&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt;=0x00;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONF&lt;/SPAN&gt;&lt;SPAN&gt;=0xC0; &lt;/SPAN&gt;&lt;SPAN&gt;//set up BDM in 11&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;FMS&lt;/SPAN&gt;&lt;SPAN&gt;=0x00; &lt;/SPAN&gt;&lt;SPAN&gt;//clear the WPEN so that WPDIS is set in FTM0-&amp;gt;_MODE register&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MODE&lt;/SPAN&gt;&lt;SPAN&gt;|=0x05; &lt;/SPAN&gt;&lt;SPAN&gt;//enable write the FTM CnV register&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;MOD&lt;/SPAN&gt;&lt;SPAN&gt;=1000;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[0].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt;=0x28; &lt;/SPAN&gt;&lt;SPAN&gt;//High_Low_high for center-alignment&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[1].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt;=0x28;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[2].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt;=0x28;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[3].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt;=0x28;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[4].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt;=0x28;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[5].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt;=0x28;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[6].&lt;/SPAN&gt;&lt;SPAN&gt;CnSC&lt;/SPAN&gt;&lt;SPAN&gt;=0x28;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt;=0x020202; &lt;/SPAN&gt;&lt;SPAN&gt;//complementary mode for CH0&amp;amp;CH1, CH2&amp;amp;CH3 of FTM0-&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;COMBINE&lt;/SPAN&gt;&lt;SPAN&gt;|=0x101010; &lt;/SPAN&gt;&lt;SPAN&gt;// dead timer insertion enabled in complementary mode //for CH0&amp;amp;CH1 of FTM0-&amp;gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;DEADTIME&lt;/SPAN&gt;&lt;SPAN&gt;=0x1F; &lt;/SPAN&gt;&lt;SPAN&gt;//dead time is 31 system clock cycles&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CNTIN&lt;/SPAN&gt;&lt;SPAN&gt;=0x00;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[1].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt;=500; &lt;/SPAN&gt;&lt;SPAN&gt;//in complementary, C0V/C2V/C4V are used to control duty cycle.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[0].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt;=500; &lt;/SPAN&gt;&lt;SPAN&gt;//in complementary mode, C1V/C3V/C5V are not used.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[2].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt;=500;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[3].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt;=500;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[4].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt;=500;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CONTROLS&lt;/SPAN&gt;&lt;SPAN&gt;[5].&lt;/SPAN&gt;&lt;SPAN&gt;CnV&lt;/SPAN&gt;&lt;SPAN&gt;=1000;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;//triggering ADC at the center point of PWM signal while PWM is set up in //center alignment mode&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC&lt;/SPAN&gt;&lt;SPAN&gt;=0x28; &lt;/SPAN&gt;&lt;SPAN&gt;//PWM center alignment, system clock driving, dividing by 1&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;asm&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;nop&lt;/SPAN&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;//set that FTM0_C5V to trigger ADC, in complementary, C5V is not used to //control duty cycle&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;EXTTRIG&lt;/SPAN&gt;&lt;SPAN&gt;|=0x08;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;//NVIC-&amp;gt;ISER[1] |= (1 &amp;lt;&amp;lt; 7);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;//NVIC-&amp;gt;ICPR[0] |= (1 &amp;lt;&amp;lt; 7);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;//FTM0-&amp;gt;SC |= FTM_SC_TOIE_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;FTM0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;STATUS&lt;/SPAN&gt;&lt;SPAN&gt; &amp;amp; FTM_STATUS_CH0F_MASK)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;FTM0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;STATUS&lt;/SPAN&gt;&lt;SPAN&gt; &amp;amp;= ~FTM_STATUS_CH0F_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// Clear the channel flag&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;//ADC0-&amp;gt;SC1[0] = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(8); // Start ADC conversion on channel 8&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;AdcInit&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC5&lt;/SPAN&gt;&lt;SPAN&gt; |= 0x3E00; &lt;/SPAN&gt;&lt;SPAN&gt;// enable port A/B/C/D/E clock&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SCGC6&lt;/SPAN&gt;&lt;SPAN&gt; |= SIM_SCGC6_ADC0_MASK; &lt;/SPAN&gt;&lt;SPAN&gt;// enable ADC0 clock&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG1&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_CFG1_ADIV(4) | ADC_CFG1_MODE(1) | ADC_CFG1_ADICLK(0); &lt;/SPAN&gt;&lt;SPAN&gt;// ADC clock is bus clock/2, bus clock is 20M, ADC clock is 10MHz&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;CFG2&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt; = ADC_SC2_ADTRG(1); &lt;/SPAN&gt;&lt;SPAN&gt;// hardware triggered&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC2&lt;/SPAN&gt;&lt;SPAN&gt;|= ADC_SC2_ADACT(1);&lt;/SPAN&gt;&lt;SPAN&gt;//conversion start&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC3&lt;/SPAN&gt;&lt;SPAN&gt; = 0x00;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(8);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;SIM-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SOPT7&lt;/SPAN&gt;&lt;SPAN&gt; = SIM_SOPT7_ADC0TRGSEL(0x08)| SIM_SOPT7_ADC0ALTTRGEN_MASK;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;NVIC_EnableIRQ(&lt;/SPAN&gt;&lt;SPAN&gt;ADC0_IRQn&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;__ASM(&lt;/SPAN&gt;&lt;SPAN&gt;"CPSIE I"&lt;/SPAN&gt;&lt;SPAN&gt;);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;uint32_t&lt;/SPAN&gt;&lt;SPAN&gt; sample[10];&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;void&lt;/SPAN&gt; &lt;SPAN&gt;ADC0_IRQHandler&lt;/SPAN&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;SPAN&gt;void&lt;/SPAN&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;&lt;SPAN&gt; (ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;SC1&lt;/SPAN&gt;&lt;SPAN&gt;[0] &amp;amp; ADC_SC1_COCO_MASK)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;// ADC0-&amp;gt;SC1[0] = ADC_SC1_AIEN_MASK | ADC_SC1_ADCH(8);&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt; GPIOC-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;PTOR&lt;/SPAN&gt;&lt;SPAN&gt; = 0x40; &lt;/SPAN&gt;&lt;SPAN&gt;// Toggle indicator&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;sample[0] = ADC0-&amp;gt;&lt;/SPAN&gt;&lt;SPAN&gt;R&lt;/SPAN&gt;&lt;SPAN&gt;[0];&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;/DIV&gt;
&lt;/DIV&gt;</description>
      <pubDate>Tue, 09 Jan 2024 09:29:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1785121#M65907</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-01-09T09:29:11Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1785175#M65908</link>
      <description>Hi&lt;BR /&gt;xiangjun_rong&lt;BR /&gt;Thank you for your answer&lt;BR /&gt;This program ADC value 950 range only varying KV31F512VLL12 IN 12 bit ADC why 950 range ?I`m using 12 bit ADC watch variable sample[0] only 950&lt;BR /&gt;&lt;BR /&gt;BR&lt;BR /&gt;PANDI</description>
      <pubDate>Tue, 09 Jan 2024 10:03:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1785175#M65908</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2024-01-09T10:03:17Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1785639#M65914</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;You set the line:&lt;/P&gt;
&lt;P&gt;DC0-&amp;gt;CFG1 = ADC_CFG1_ADIV(4) | ADC_CFG1_MODE(1) | ADC_CFG1_ADICLK(0);&lt;/P&gt;
&lt;P&gt;Mode bits is 01 in binary, so the ADC resolution is 12 bits.&lt;/P&gt;
&lt;P&gt;The 3.3V full range is 0xFFF or 4095. The tested voltage on ADC channel is (950/4095)*3.3V=0.76V.&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="xiangjun_rong_0-1704853384564.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/257408i6630A312846E45FA/image-size/medium?v=v2&amp;amp;px=400" role="button" title="xiangjun_rong_0-1704853384564.png" alt="xiangjun_rong_0-1704853384564.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2024 02:26:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1785639#M65914</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-01-10T02:26:46Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1787170#M65935</link>
      <description>&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/26034"&gt;@xiangjun_rong&lt;/a&gt;&amp;nbsp;Thanks&lt;/P&gt;&lt;P&gt;This program working . Its possible 4 ADC0 channel and 4 PWM&amp;nbsp; with FTM0 triggering method&amp;nbsp;&lt;SPAN&gt;how to configure?&lt;/SPAN&gt;&amp;nbsp;guide me&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;PANDI&lt;/P&gt;</description>
      <pubDate>Thu, 11 Jan 2024 11:17:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1787170#M65935</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2024-01-11T11:17:50Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1789030#M65947</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;It is okay to sample 4 ADC channel synchronized.&lt;/P&gt;
&lt;P&gt;The KV31 has 2 ADC modules, ADC0 and ADC1, each ADC has two converters: SC1A and SC1B, so&amp;nbsp; it is okay, but the PDB module must be involved.&lt;/P&gt;
&lt;P&gt;This is the solution.&lt;/P&gt;
&lt;P&gt;FTM triggers PDB, the PDB generates timing to trigger both ADC0 and ADC1.&lt;/P&gt;
&lt;P&gt;Pls refer to the ticket and check if it is helpful.&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.nxp.com/t5/Kinetis-Microcontrollers/KV56-Trigger-HSADC-with-PDB/m-p/1473870#M63331" target="_blank"&gt;https://community.nxp.com/t5/Kinetis-Microcontrollers/KV56-Trigger-HSADC-with-PDB/m-p/1473870#M63331&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 16 Jan 2024 01:37:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1789030#M65947</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-01-16T01:37:29Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1799885#M66004</link>
      <description>&lt;P&gt;&lt;EM&gt;HI&amp;nbsp;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/26034"&gt;@xiangjun_rong&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;okey,&lt;/P&gt;&lt;P&gt;Its possible for KV31 4 ADC channels continuously trigger FTM 0 .if you have sample program give to me help&amp;nbsp;for us&lt;/P&gt;&lt;P&gt;thank you&lt;/P&gt;&lt;P&gt;BR&lt;/P&gt;&lt;P&gt;PANDI&lt;/P&gt;</description>
      <pubDate>Thu, 01 Feb 2024 12:17:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1799885#M66004</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2024-02-01T12:17:59Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1800618#M66011</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;I means that the FTM0 trigger 4 ADC channel via PDB.&lt;/P&gt;
&lt;P&gt;Pls refer to the an:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.nxp.com.cn/docs/en/application-note/AN4822.pdf" target="_blank"&gt;https://www.nxp.com.cn/docs/en/application-note/AN4822.pdf&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Hope it can help you&lt;/P&gt;
&lt;P&gt;BR&lt;/P&gt;
&lt;P&gt;XiangJun Rong&lt;/P&gt;</description>
      <pubDate>Fri, 02 Feb 2024 07:35:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1800618#M66011</guid>
      <dc:creator>xiangjun_rong</dc:creator>
      <dc:date>2024-02-02T07:35:01Z</dc:date>
    </item>
    <item>
      <title>Re: ADC inject trigger</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1803421#M66038</link>
      <description>&lt;P&gt;HI&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/26034"&gt;@xiangjun_rong&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Wed, 07 Feb 2024 14:27:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/ADC-inject-trigger/m-p/1803421#M66038</guid>
      <dc:creator>pandi</dc:creator>
      <dc:date>2024-02-07T14:27:54Z</dc:date>
    </item>
  </channel>
</rss>

