S32DS, S32K144, how to make 10ms loop in main()

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

S32DS, S32K144, how to make 10ms loop in main()

2,300件の閲覧回数
kimjunghyun
Contributor III

I had used Code Warrior and now I am using S32DS(S32 Design Studio for ARM)
But it is difficult to understand the functions and parameters supported by S32DS.
I think it would be easier than using S32DS if I make code by hand coding.
So I would like to ask you as following questions.

Purpose : how to make 10ms loop in main()
MCU : S32K144(68pin)

1. How to configure the Component Inspector?

2. Which components should I use at Components window? (from Components window to main.c window)

3. I hope there are some example code. (I already tried some example projects like FTM_Timer_Example on S32DS..)

 

I hope somebody help me soon.
Thank you.
Kim.

ラベル(1)
2 返答(返信)

1,733件の閲覧回数
jiri_kral
NXP Employee
NXP Employee
0 件の賞賛
返信

1,733件の閲覧回数
jiri_kral
NXP Employee
NXP Employee

Hi Kim, 

LPIT timer is dedicated for such kind of task. You can set period in us and in Interrupt handler you can set some kind of flag and test the flag in the main loop - like this:

.

.

volatile int your_exec_fag = 0;

.

.

void LPIT_ISR(void)
{

   exec_flag = 1;

   LPIT_DRV_ClearInterruptFlagTimerChannels(FSL_LPIT1, (1 << LPIT_CHANNEL));

}

main()

{

.

.

   LPIT_DRV_GetTimerPeriodByUs(FSL_LPIT1, channel_num, 10000);  // set period to 10 000us (10ms)

.

.

   if (your_exec_flag!=0)

  {

      your_10ms_function();

     your_exec_flag = 0;

  }

For more details about LPIT you can look at LPIT_Example:

[Your DS32_ARM_install_path]\S32DS_ARM_v1.3\S32DS\S32_SDK_EAR_0.8.2\examples\driver_examples\lpit\LPIT_Example\ 

Jiri