<?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>Kinetis Microcontrollers中的主题 Re: KL27 Adc locked</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL27-Adc-locked/m-p/980383#M55455</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Attilio,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm glad you were able to solve this. The printf function should only be used for debugging, however, for the actual implementation of your application, minimal or no use should be made, since you mention that it slows down the application, since it takes time to perform the printing routine and return to the application.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you have any questions please don't hesitate to ask.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Ricardo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 19 Dec 2019 17:54:07 GMT</pubDate>
    <dc:creator>nxf58474</dc:creator>
    <dc:date>2019-12-19T17:54:07Z</dc:date>
    <item>
      <title>KL27 Adc locked</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL27-Adc-locked/m-p/980380#M55452</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;I'd like to use the internal AD converter. But it doesn't work correctly.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;I connected a continue voltage on PTB 0 labeled as ADC0/SE8 adc channel.(using FRDMKL27)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;I follow the data sheet just to start the module but the register R it is always at the value of 65535.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;If I break at ADC0 interrupr handler I see this.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;The ADc is triggered from a timer every 500 ms.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;What's miss on my code ? &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;Any suggestion ?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;Attilio&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;void ADC0_IRQHandler(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;static UINT32 value = 0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = ADC0-&amp;gt;R[0];&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;BOOL Adc_Calibration(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;UINT16 &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_data;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ADC_Type&amp;nbsp;&amp;nbsp; &amp;nbsp;*adc;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;adc = ADC0;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; // just to see the register in the debug window&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;adc-&amp;gt;CFG1 |= ADC_CFG1_ADICLK(0x01)&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; // adc input clock = busclk/ 2 --&amp;gt; (24 Mhz / 2) = 12 Mhz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ADC_CFG1_ADIV(2)&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; // adc division = 8 --&amp;gt; adc clock = 12 Mz / 8 = 1Mhz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ADC_CFG1_ADLPC(0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + &amp;nbsp;&amp;nbsp;&amp;nbsp;// no low power&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ADC_CFG1_ADLSMP(0x01)&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp;// long sample time&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; ADC_CFG1_MODE(0x03); &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; // with DIFF = 0 --&amp;gt; 16 bit single ended&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;adc-&amp;gt;SC2 = 0x00;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;// software trigger selected&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// compare function disabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;// DMA transfert disabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;// voltage ref is default ref (vrefh / vrefl)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;adc-&amp;gt;SC3 |= ADC_SC3_AVGE_MASK + &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // enable hw average&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ADC_SC3_AVGS(3) &amp;nbsp; +&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// set for 32 samples&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ADC_SC3_CAL_MASK;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// start calibration&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(adc-&amp;gt;SC3 &amp;amp; ADC_SC3_CAL_MASK);&amp;nbsp;&amp;nbsp;&amp;nbsp;// wait for calibration end&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if(adc-&amp;gt;SC3 &amp;amp; ADC_SC3_CALF_MASK)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// check calibration success ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return FALSE;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// calibration was fault&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;// compute &amp;amp; store &lt;/SPAN&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;calibration data&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_data&amp;nbsp; = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_data += adc-&amp;gt;CLPS + adc-&amp;gt;CLP4 + adc-&amp;gt;CLP3 +&amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adc-&amp;gt;CLP2 + adc-&amp;gt;CLP1 + adc-&amp;gt;CLP0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_data &amp;gt;&amp;gt;= 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_data |= 0x8000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;adc-&amp;gt;PG = cal_data;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_data&amp;nbsp; = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_data += adc-&amp;gt;CLMS + adc-&amp;gt;CLM4 + adc-&amp;gt;CLM3 +&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adc-&amp;gt;CLM2 + adc-&amp;gt;CLM1 + adc-&amp;gt;CLM0;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_data &amp;gt;&amp;gt;= 1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cal_data |= 0x8000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;adc-&amp;gt;MG = cal_data;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;adc-&amp;gt;SC3 &amp;amp;= ~ADC_SC3_CAL_MASK;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;// clear CAL bit&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return TRUE;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;void InitAdc(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;SIM-&amp;gt;SCGC6 |= SIM_SCGC6_ADC0_MASK;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// adc0 clock gating&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(Adc_Calibration() == FALSE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ErrorTrap();&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// just for debug&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;// change adc config after calibration&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ADC0-&amp;gt;CFG1 |= ADC_CFG1_ADICLK(0x01) +&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// adc input clock = busclock --&amp;gt; 24 Mhz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ADC_CFG1_ADIV(0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // adc division = 1 --&amp;gt; adc clock = 24 Mz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ADC_CFG1_ADLPC(0)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// no low power&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ADC_CFG1_ADLSMP(0x01) +&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;// long sample time&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ADC_CFG1_MODE(0x03); &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;// with DIFF = 0 --&amp;gt; 16 bit single ended&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ADC0-&amp;gt;SC1[0] |= ADC_SC1_ADCH(0x1F);&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;// disable ADC module&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ConnectInterruptToCortex(ADC0_IRQn);&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;// set ADC0 interrupts&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;void TriggerAdc(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;ADC0-&amp;gt;SC1[0] = ADC_SC1_ADCH(8) | ADC_SC1_AIEN_MASK;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;void main(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp; InitAdc();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp; ENABLE_INTERRUPTS;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp; while(1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-size: 13px; font-family: courier new, courier, monospace;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 15 Dec 2019 14:33:58 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL27-Adc-locked/m-p/980380#M55452</guid>
      <dc:creator>attiliorossi321</dc:creator>
      <dc:date>2019-12-15T14:33:58Z</dc:date>
    </item>
    <item>
      <title>Re: KL27 Adc locked</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL27-Adc-locked/m-p/980381#M55453</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Attilio,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Hope you are going well. We have drivers examples in the SDK. You can download it here: &lt;A href="https://mcuxpresso.nxp.com/en/select"&gt;SDK Builder&lt;/A&gt;. To see all driver examples you need to select the FRDM-KL27Z board. I recommend consulting the adc16_interrupt example, it does the ADC initialization and calibration. Try this example and, if it works, I can help you to modify your initialization function, or you can take the example and adapt it to your desired configuration.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Let me know your results and if you have further questions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Ricardo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 17 Dec 2019 17:46:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL27-Adc-locked/m-p/980381#M55453</guid>
      <dc:creator>nxf58474</dc:creator>
      <dc:date>2019-12-17T17:46:39Z</dc:date>
    </item>
    <item>
      <title>Re: KL27 Adc locked</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL27-Adc-locked/m-p/980382#M55454</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ricardo.&lt;/P&gt;&lt;P&gt;Thanks for your answer.&lt;/P&gt;&lt;P&gt;I'm looking for adc driver examples as you told me. To be onest about my problem, I just found out an hardware problem too.&lt;/P&gt;&lt;P&gt;In my think, the sdk are very useful but I can prefer to write the driver. But now seem to work properly. I have to adjust the adc hardware interrupt and remove the PRINTF console debug. It is a useful function but very very slow.&lt;/P&gt;&lt;P&gt;Best regards.&lt;/P&gt;&lt;P&gt;Attilio&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Dec 2019 11:07:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL27-Adc-locked/m-p/980382#M55454</guid>
      <dc:creator>attiliorossi321</dc:creator>
      <dc:date>2019-12-19T11:07:42Z</dc:date>
    </item>
    <item>
      <title>Re: KL27 Adc locked</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL27-Adc-locked/m-p/980383#M55455</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Attilio,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm glad you were able to solve this. The printf function should only be used for debugging, however, for the actual implementation of your application, minimal or no use should be made, since you mention that it slows down the application, since it takes time to perform the printing routine and return to the application.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you have any questions please don't hesitate to ask.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Ricardo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 19 Dec 2019 17:54:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/KL27-Adc-locked/m-p/980383#M55455</guid>
      <dc:creator>nxf58474</dc:creator>
      <dc:date>2019-12-19T17:54:07Z</dc:date>
    </item>
  </channel>
</rss>

