Hello all,
I am working on a new project involving PDP and have questions in reference to the thread dealing with PDP. (Pulse Distance Protocol)
https://community.freescale.com/message/103280#103280
1. Using the TPM2 in OC Mode, do I need to deal with Timer Overflow? (I do not see any code in the thread to handle overflow)
2. In the TPM2 CH 0 ISR, the following code is used the load the value register:
TPM2C0V += SPULSE; // Start pulse (9000)
Is this code effectively the same as:
TPM2C0V = TPM2CNT + SPULSE; // Start pulse (9000)
Thanks,
David
已解决! 转到解答。
Hello David,
You do not need to be concerned about timer overflow provided the following conditions are met -
TPM2C0V += SPULSE; // Start pulse (9000)
This is equivalent to -
TPM2C0V = TPM2COV + SPULSE;
The next timing interval must always be referenced from the time of the previous output compare event, when the output pin actually changed state. Since there will always be some latency in the execution of the ISR, referencing the next compare event from the current counter value will cause timing errors.
Regards,
Mac
Hello David,
You do not need to be concerned about timer overflow provided the following conditions are met -
TPM2C0V += SPULSE; // Start pulse (9000)
This is equivalent to -
TPM2C0V = TPM2COV + SPULSE;
The next timing interval must always be referenced from the time of the previous output compare event, when the output pin actually changed state. Since there will always be some latency in the execution of the ISR, referencing the next compare event from the current counter value will cause timing errors.
Regards,
Mac