print function in s32k144

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

print function in s32k144

3,230 次查看
akhilranga
Contributor IV

hello all,

the one below is the example code for ADC. You can notice, in the code that the output of this code is red, blue and green lights switching on based on the onboard Potentiometer input. 
My Question is : How can I read the exact potentiometer value. How can I print that value. How can I use print function here. So that whenever the potentiometer changes, I can see the value of ADC result in mV (0-5000mv) and also see the change of lights based on the value according to code. 
 

 

#include "S32K144.h" /* include peripheral declarations S32K144 */
#include "clocks_and_modes.h"
#include "ADC.h"
#define PTD15 15 /* RED LED*/
#define PTD16 16 /* GREEN LED*/
#define PTD0 0   /* BLUE LED */

void PORT_init (void) {
  PCC->PCCn[PCC_PORTD_INDEX ]|=PCC_PCCn_CGC_MASK;   /* Enable clock for PORTD */
  PORTD->PCR[PTD0]  =  0x00000100;  /* Port D0: MUX = GPIO */
  PORTD->PCR[PTD15] =  0x00000100;  /* Port D15: MUX = GPIO */
  PORTD->PCR[PTD16] =  0x00000100;  /* Port D16: MUX = GPIO */

  PTD->PDDR |= 1<<PTD0;           /* Port D0:  Data Direction= output */
  PTD->PDDR |= 1<<PTD15;          /* Port D15: Data Direction= output */
  PTD->PDDR |= 1<<PTD16;          /* Port D16: Data Direction= output */
}

void WDOG_disable (void){
  WDOG->CNT=0xD928C520;     /* Unlock watchdog */
  WDOG->TOVAL=0x0000FFFF;   /* Maximum timeout value */
  WDOG->CS = 0x00002100;    /* Disable watchdog */
}

int main(void)
{
  uint32_t adcResultInMv=0;

  WDOG_disable();        /* Disable WDOG*/
  SOSC_init_8MHz();      /* Initialize system oscillator for 8 MHz xtal */
  SPLL_init_160MHz();    /* Initialize SPLL to 160 MHz with 8 MHz SOSC */
  NormalRUNmode_80MHz(); /* Init clocks: 80 MHz sysclk & core, 40 MHz bus, 20 MHz flash */
  PORT_init();                  /* Init  port clocks and gpio outputs */
  ADC_init();            /* Init ADC resolution 12 bit*/

  for(;;) {
    convertAdcChan(12);                   /* Convert Channel AD12 to pot on EVB */
    while(adc_complete()==0){}            /* Wait for conversion complete flag */
    adcResultInMv = read_adc_chx();       /* Get channel's conversion results in mv */

    if (adcResultInMv > 3750) {           /* If result > 3.75V */
      PTD->PSOR |= 1<<PTD0 | 1<<PTD16;    /* turn off blue, green LEDs */
      PTD->PCOR |= 1<<PTD15;              /* turn on red LED */
    }
    else if (adcResultInMv > 2500) {      /* If result > 2.5V */
      PTD->PSOR |= 1<<PTD0 | 1<<PTD15;    /* turn off blue, red LEDs */
      PTD->PCOR |= 1<<PTD16;                /* turn on green LED */
    }
    else if (adcResultInMv >1250) {       /* If result > 1.25V */
      PTD->PSOR |= 1<<PTD15 | 1<<PTD16;   /* turn off red, green LEDs */
      PTD->PCOR |= 1<<PTD0;            /* turn on blue LED */
    }
    else {
      PTD->PSOR |= 1<<PTD0 | 1<< PTD15 | 1<<PTD16; /* Turn off all LEDs */
    }

    convertAdcChan(29);                   /* Convert chan 29, Vrefsh */
    while(adc_complete()==0){}            /* Wait for conversion complete flag */
    adcResultInMv = read_adc_chx();       /* Get channel's conversion results in mv */
  }
}

 

Hope, you understood my question. Please help me out how ever possiblle. Thank You

标记 (3)
0 项奖励
回复
7 回复数

3,226 次查看
Robin_Shen
NXP TechSupport
NXP TechSupport

Hi akhilranga,

Please refer to adc_hwtrigger_s32k144 in S32SDK S32K1xx RTM:

adc_hwtrigger_s32k144.png

I don't know what version of S32DS you are using. Here are the two latest SDK versions in S32DS ARM2.2 and S32DS 3.4:
S32 Design Studio for ARM 2.2 - Update 1 available
S32 Design Studio v3.4 S32K1 Service Pack 1 released!

Best Regards,
Robin
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 项奖励
回复

3,219 次查看
akhilranga
Contributor IV

Hello there i am using S32kDS for ARM v1.3. 

And i dont have this SDK S32SDK S32K1xx RTM:.

How can i get this.Please asssit me.

Thank You

 

0 项奖励
回复

3,215 次查看
Robin_Shen
NXP TechSupport
NXP TechSupport

The version of S32DS you are using is too old, it is recommended to use a new version for development.

Anyway, please install S32K1 SDK by refer to: S32 Design Studio for Arm v1.3 - Update 3 & 4 available

0 项奖励
回复

3,209 次查看
akhilranga
Contributor IV

Hi @Robin_Shen 

thanks for the advice about the version 1.3

I tried the adc_hwtrigger, but got lots of errors. can you please help me resolve it. Attaching the screen shot down below.

Screenshot (139).png

 Thank You

 

0 项奖励
回复

3,204 次查看
Robin_Shen
NXP TechSupport
NXP TechSupport

Please click "Generate Processor Expert Code" and then Build the project.

Generate Processor Expert Code.png

0 项奖励
回复

3,173 次查看
akhilranga
Contributor IV

Hi @Robin_Shen 

Yes, I was able to do build the code without erorr. I jsut had one last doubt . Where can i acess that print function. I mean where can i see the ADC  valuse which were being printed by the function. 

0 项奖励
回复

3,159 次查看
Robin_Shen
NXP TechSupport
NXP TechSupport

The example documentation can be found in the S32 SDK documentation at Examples and Demos section. (<SDK_PATH>/doc/Start_Here.html) Please read the manual of ADC Hardware Trigger

ADC Hardware Trigger.png

0 项奖励
回复