<?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 Adc polling in S32K</title>
    <link>https://community.nxp.com/t5/S32K/Adc-polling/m-p/1722212#M27046</link>
    <description>&lt;P&gt;I read adc value to control a led, but it doesm't work. this is my code.&lt;BR /&gt;in file drive.c&lt;/P&gt;&lt;DIV&gt;typedef struct&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t clockDivide;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t sampleTime;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t resolution;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t inputClock;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t triggerType;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t voltageRef;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; bool&amp;nbsp; &amp;nbsp; dmaEnable;&lt;/DIV&gt;&lt;DIV&gt;} adc_config_t;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;typedef struct&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t controlChannel;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t inputChannel;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; bool&amp;nbsp; &amp;nbsp; enableInterrupt;&lt;/DIV&gt;&lt;DIV&gt;} adc_channel_t;&lt;/DIV&gt;&lt;DIV&gt;void ADC_strriger(){}&lt;/DIV&gt;&lt;DIV&gt;uint8_t ADC_Init(adc_config_t * adcConfig)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; if (adcConfig == NULL)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 1;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 &amp;amp;= ~ADC_CFG1_ADIV_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 |= ADC_CFG1_ADIV(adcConfig-&amp;gt;clockDivide);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 &amp;amp;= ~ADC_CFG1_MODE_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 |= ADC_CFG1_MODE(adcConfig-&amp;gt;resolution);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 &amp;amp;= ~ADC_CFG1_ADICLK_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 |= ADC_CFG1_ADICLK(adcConfig-&amp;gt;inputClock);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG2 &amp;amp;= ~ADC_CFG2_SMPLTS_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG2 |= ADC_CFG2_SMPLTS(adcConfig-&amp;gt;sampleTime);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ADC0-&amp;gt;SC2 &amp;amp;= ~ADC_SC2_ADTRG_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;SC2 |= ADC_SC2_ADTRG(adcConfig-&amp;gt;triggerType);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ADC0-&amp;gt;SC2 &amp;amp;= ~ADC_SC2_REFSEL_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;SC2 |= ADC_SC2_REFSEL(adcConfig-&amp;gt;voltageRef);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ADC0-&amp;gt;SC2 &amp;amp;= ~ADC_SC2_DMAEN_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if (adcConfig-&amp;gt;dmaEnable == true)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ADC0-&amp;gt;SC2 |= ADC_SC2_DMAEN(1);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;else ADC0-&amp;gt;SC2 |= ADC_SC2_DMAEN(0);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return 0xFFu;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;uint8_t ADC_ConfigChannel(adc_channel_t * adcChannel)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint32_t tempVal;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; if(adcChannel==NULL) return 1;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; tempVal&amp;nbsp; = ADC0-&amp;gt;SC1[adcChannel-&amp;gt;controlChannel];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; tempVal &amp;amp;= ~ADC_SC1_ADCH_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; tempVal |= ADC_SC1_ADCH(adcChannel-&amp;gt;inputChannel);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; tempVal &amp;amp;= ~ADC_SC1_AIEN_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; if(adcChannel-&amp;gt;enableInterrupt==true)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; tempVal |= ADC_SC1_AIEN(1);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; else tempVal |= ADC_SC1_AIEN(0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;SC1[adcChannel-&amp;gt;controlChannel] = tempVal;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return 0xFFu; // success&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void ADC_WaitConversionComplete(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; while(((ADC0-&amp;gt;SC1[0] &amp;amp; ADC_SC1_COCO_MASK)&amp;gt;&amp;gt;ADC_SC1_COCO_SHIFT) == 0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;uint8_t Clear_GPIO(uint8_t pinNumber)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PTD-&amp;gt;PCOR = (uint32_t)(1 &amp;lt;&amp;lt; pinNumber);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;void ADC_StartConversion(uint8_t inputChannel)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; adc_config_t adcConfig =&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1,255,1,0,0,0,false&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; (void)ADC_Init(&amp;amp;adcConfig);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; adc_channel_t adcChannel = {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,inputChannel,0&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; (void)ADC_ConfigChannel(&amp;amp;adcChannel);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC_WaitConversionComplete();&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;uint8_t Set_GPIO(uint8_t pinNumber)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PTD-&amp;gt;PSOR = (uint32_t)(1 &amp;lt;&amp;lt; pinNumber);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;uint32_t ADC_GetConversionResult(uint8_t controlChannel)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return (uint32_t)(ADC0-&amp;gt;R[controlChannel] &amp;amp; ADC_R_D_MASK);&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;void Init_GPIO(uint8_t pinNumber)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PCC-&amp;gt; PCCn[PCC_PORTD_INDEX] =&amp;nbsp; PCC_PCCn_CGC_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PORTD-&amp;gt;PCR[pinNumber] = PORT_PCR_MUX(1);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PTD-&amp;gt;PDDR = (uint32_t)(1 &amp;lt;&amp;lt; pinNumber);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PORTC-&amp;gt;PCR[14]=PORT_PCR_MUX(0);&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;void ADC_ControlLight(uint8_t inputChannel)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;Init_GPIO(15);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC_StartConversion(inputChannel);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint32_t a=ADC_GetConversionResult(12);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; if(a&amp;gt;=1024)Set_GPIO(15);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; else Clear_GPIO(15);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;P&gt;/**********************************/&lt;BR /&gt;in file main.c&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt;int appMain(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] &amp;amp;=~ PCC_PCCn_CGC_MASK; /* Disable clock to change PCS */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] |= PCC_PCCn_PCS(1); /* PCS=1: Select SOSCDIV2 */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] |= PCC_PCCn_CGC_MASK; /* Enable bus clock in ADC */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Init_GPIO();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; while(1) {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC_ControlLight();&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;</description>
    <pubDate>Wed, 13 Sep 2023 16:19:24 GMT</pubDate>
    <dc:creator>duong</dc:creator>
    <dc:date>2023-09-13T16:19:24Z</dc:date>
    <item>
      <title>Adc polling</title>
      <link>https://community.nxp.com/t5/S32K/Adc-polling/m-p/1722212#M27046</link>
      <description>&lt;P&gt;I read adc value to control a led, but it doesm't work. this is my code.&lt;BR /&gt;in file drive.c&lt;/P&gt;&lt;DIV&gt;typedef struct&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t clockDivide;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t sampleTime;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t resolution;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t inputClock;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t triggerType;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t voltageRef;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; bool&amp;nbsp; &amp;nbsp; dmaEnable;&lt;/DIV&gt;&lt;DIV&gt;} adc_config_t;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;typedef struct&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t controlChannel;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint8_t inputChannel;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; bool&amp;nbsp; &amp;nbsp; enableInterrupt;&lt;/DIV&gt;&lt;DIV&gt;} adc_channel_t;&lt;/DIV&gt;&lt;DIV&gt;void ADC_strriger(){}&lt;/DIV&gt;&lt;DIV&gt;uint8_t ADC_Init(adc_config_t * adcConfig)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; if (adcConfig == NULL)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return 1;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 &amp;amp;= ~ADC_CFG1_ADIV_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 |= ADC_CFG1_ADIV(adcConfig-&amp;gt;clockDivide);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 &amp;amp;= ~ADC_CFG1_MODE_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 |= ADC_CFG1_MODE(adcConfig-&amp;gt;resolution);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 &amp;amp;= ~ADC_CFG1_ADICLK_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG1 |= ADC_CFG1_ADICLK(adcConfig-&amp;gt;inputClock);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG2 &amp;amp;= ~ADC_CFG2_SMPLTS_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;CFG2 |= ADC_CFG2_SMPLTS(adcConfig-&amp;gt;sampleTime);&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ADC0-&amp;gt;SC2 &amp;amp;= ~ADC_SC2_ADTRG_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;SC2 |= ADC_SC2_ADTRG(adcConfig-&amp;gt;triggerType);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ADC0-&amp;gt;SC2 &amp;amp;= ~ADC_SC2_REFSEL_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;SC2 |= ADC_SC2_REFSEL(adcConfig-&amp;gt;voltageRef);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ADC0-&amp;gt;SC2 &amp;amp;= ~ADC_SC2_DMAEN_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;if (adcConfig-&amp;gt;dmaEnable == true)&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;ADC0-&amp;gt;SC2 |= ADC_SC2_DMAEN(1);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;else ADC0-&amp;gt;SC2 |= ADC_SC2_DMAEN(0);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return 0xFFu;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;uint8_t ADC_ConfigChannel(adc_channel_t * adcChannel)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint32_t tempVal;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; if(adcChannel==NULL) return 1;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; tempVal&amp;nbsp; = ADC0-&amp;gt;SC1[adcChannel-&amp;gt;controlChannel];&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; tempVal &amp;amp;= ~ADC_SC1_ADCH_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; tempVal |= ADC_SC1_ADCH(adcChannel-&amp;gt;inputChannel);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; tempVal &amp;amp;= ~ADC_SC1_AIEN_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; if(adcChannel-&amp;gt;enableInterrupt==true)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; tempVal |= ADC_SC1_AIEN(1);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; else tempVal |= ADC_SC1_AIEN(0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC0-&amp;gt;SC1[adcChannel-&amp;gt;controlChannel] = tempVal;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return 0xFFu; // success&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;void ADC_WaitConversionComplete(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; while(((ADC0-&amp;gt;SC1[0] &amp;amp; ADC_SC1_COCO_MASK)&amp;gt;&amp;gt;ADC_SC1_COCO_SHIFT) == 0);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;uint8_t Clear_GPIO(uint8_t pinNumber)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PTD-&amp;gt;PCOR = (uint32_t)(1 &amp;lt;&amp;lt; pinNumber);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;void ADC_StartConversion(uint8_t inputChannel)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; adc_config_t adcConfig =&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1,255,1,0,0,0,false&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; (void)ADC_Init(&amp;amp;adcConfig);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; adc_channel_t adcChannel = {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0,inputChannel,0&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; (void)ADC_ConfigChannel(&amp;amp;adcChannel);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC_WaitConversionComplete();&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;uint8_t Set_GPIO(uint8_t pinNumber)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PTD-&amp;gt;PSOR = (uint32_t)(1 &amp;lt;&amp;lt; pinNumber);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return 0;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;uint32_t ADC_GetConversionResult(uint8_t controlChannel)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; return (uint32_t)(ADC0-&amp;gt;R[controlChannel] &amp;amp; ADC_R_D_MASK);&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;void Init_GPIO(uint8_t pinNumber)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PCC-&amp;gt; PCCn[PCC_PORTD_INDEX] =&amp;nbsp; PCC_PCCn_CGC_MASK;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PORTD-&amp;gt;PCR[pinNumber] = PORT_PCR_MUX(1);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PTD-&amp;gt;PDDR = (uint32_t)(1 &amp;lt;&amp;lt; pinNumber);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; PORTC-&amp;gt;PCR[14]=PORT_PCR_MUX(0);&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;DIV&gt;void ADC_ControlLight(uint8_t inputChannel)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp;Init_GPIO(15);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC_StartConversion(inputChannel);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; uint32_t a=ADC_GetConversionResult(12);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; if(a&amp;gt;=1024)Set_GPIO(15);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; else Clear_GPIO(15);&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;&lt;P&gt;/**********************************/&lt;BR /&gt;in file main.c&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;DIV&gt;int appMain(void)&lt;/DIV&gt;&lt;DIV&gt;{&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT);&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] &amp;amp;=~ PCC_PCCn_CGC_MASK; /* Disable clock to change PCS */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] |= PCC_PCCn_PCS(1); /* PCS=1: Select SOSCDIV2 */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; PCC-&amp;gt;PCCn[PCC_ADC0_INDEX] |= PCC_PCCn_CGC_MASK; /* Enable bus clock in ADC */&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN&gt;Init_GPIO();&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; while(1) {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; ADC_ControlLight();&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; }&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;}&lt;/DIV&gt;</description>
      <pubDate>Wed, 13 Sep 2023 16:19:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Adc-polling/m-p/1722212#M27046</guid>
      <dc:creator>duong</dc:creator>
      <dc:date>2023-09-13T16:19:24Z</dc:date>
    </item>
    <item>
      <title>Re: Adc polling</title>
      <link>https://community.nxp.com/t5/S32K/Adc-polling/m-p/1722657#M27067</link>
      <description>&lt;P&gt;&lt;A href="mailto:Hi@duong" target="_blank"&gt;Hi@duong&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;If you have S32 Design for Arm V2.2 installed, you can find a similar demo.&lt;/P&gt;
&lt;P&gt;For your convenience, I have upload the demo in the attachment for your reference.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 14 Sep 2023 02:24:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Adc-polling/m-p/1722657#M27067</guid>
      <dc:creator>Senlent</dc:creator>
      <dc:date>2023-09-14T02:24:15Z</dc:date>
    </item>
    <item>
      <title>Re: Adc polling</title>
      <link>https://community.nxp.com/t5/S32K/Adc-polling/m-p/1723097#M27089</link>
      <description>&lt;P&gt;how can I find other demo code in s32&lt;/P&gt;</description>
      <pubDate>Thu, 14 Sep 2023 11:29:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Adc-polling/m-p/1723097#M27089</guid>
      <dc:creator>duong</dc:creator>
      <dc:date>2023-09-14T11:29:32Z</dc:date>
    </item>
    <item>
      <title>Re: Adc polling</title>
      <link>https://community.nxp.com/t5/S32K/Adc-polling/m-p/1723494#M27103</link>
      <description>&lt;P&gt;&lt;A href="mailto:Hi@duong" target="_blank"&gt;Hi@duong&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;bare metal demo code .&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Senlent_0-1694741431391.png" style="width: 518px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/241108i27DA7CFA1B39291E/image-dimensions/518x303?v=v2" width="518" height="303" role="button" title="Senlent_0-1694741431391.png" alt="Senlent_0-1694741431391.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 15 Sep 2023 01:44:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S32K/Adc-polling/m-p/1723494#M27103</guid>
      <dc:creator>Senlent</dc:creator>
      <dc:date>2023-09-15T01:44:02Z</dc:date>
    </item>
  </channel>
</rss>

