Does the PPS code work for the new INS example for OpenIMU?

Hi,

I have put break points on TIM2_IRQHandler and I am never seeing this code called.

I have set the the following as per the docs:

void initUserDataProcessingEngine()
{
InitUserAlgorithm(); // default implementation located in file user_algorithm.c
platformEnableGpsPps(TRUE); // Init PPS sync engine
}

What am I doing wrong?

Regards,

Simonrob

Hi Simonrob,

Could you tell me more details about what you want to do? So, I can get a firmware engineer to help you.

Dong

Dong,

I am trying to work out if the pps code actually works and what it is doing, I have the IMU connected to a Ublox zed-f9p with the pps connect to pin 2 . I now can see that the interrupt is being serviced, but I can't work out in the code as bits are commented out if the timestamp is being adjusted accordingly.

Looking at in DataAcquisitionSupport.c and ONE_PPS_EXTI_IRQHandler.

Why is ppsDetected commented out?

void ONE_PPS_EXTI_IRQHandler(void)
{
OSEnterISR();

if(platformIsGpsPPSUsed()){

// ppsDetected = 1;
}

EXTI->PR = ONE_PPS_EXTI_LINE;  ///< Clear the interrupt bit

OSExitISR();

}

Simon

@dong bump

@simon-rob , I will find the firmware engineer to answer your question.

1 PPS signal is processed inside timer5 interrupt routine.
ppsDetected is set inside function platformSetPpsTimeStamp(ts)

@Andrey Bondarev,

I can see how ppsDetected is set in Timer5, but as far as I can tell timer5 isn't triggered by the pps input on pin 2.

Timer0 gets trigger by the input on pin 2.

My question as I can't figure it out, is how is the timestamp being synchronised by the pps input?

Many thanks,

Simon

Log in to reply