Help!! FTM2_C0V does not update.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hello,
I am using the FTM2 in Output Compare mode. This timers get the reference clock through external clock (100 KHz), so it overflows each 655.4ms. I am interested in using the Channel Match interrupt capabilities of this peripheral, but the content of FTM2_C0V is never updated. The reference manual said that this register is updated in the next count of FTM2 after FTM2_C0V was written (in my case, CLKS !=0 and FTMEN=0) but it always remains the same value. Check this simple code:
PE_ISR(FTM2_overflow)
{
FTM2_C0SC &= (uint32_t)~0x80UL; //Clear flag
sendUart(FTM2_C0V); //Print FTM2_C0V value
}
void setTimer(void)
{
FTM2_C0V=0x7FFF;
FTM2_C0SC &= (uint32_t)~0x80UL; //Clear flag to clean previous channel matches
FTM2_C0SC |= (uint32_t)0x40UL; // Channel match interrupt enabled
}
When setTimer function is called, UART send the FTM2_C0V value each 655.4 ms, but this value is always 0x0000 (the default value) instead 0x7FFF.
Thank you
Jose
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
We have not found out the solution :smileysad:. Anyone can help me?
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Dear Jose Garcia Doblado,
Thank you for your post, however please consider moving it to the right community place for better visibility.
For details please see general advice https://community.freescale.com/docs/DOC-99909
Thank you for using Freescale Community.
Regards,
Wlodek_D.
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi,
can you tell me which controller you are using?
Thanks and Regards,
Robin
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
I am using a Kinetis K30 microcontroller, the MK30DN512ZVLQ10.
Thanks,
Jose
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Like
void setTimer(void)
{
FTM2_MOD=0xFFFF;
FTM2_C0V=0x7FFF;
FTM2_C0SC &= (uint32_t)~0x80UL; //Clear flag to clean previous channel matches
FTM2_C0SC |= (uint32_t)0x40UL; // Channel match interrupt enabled
}
Thanks n Regards,
Robin
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
I have tried it but It does not work.
I was able to update the FTM2_C0V value stopping the counter CLKS=00 and the restarting again. But this solution is not valid for me. FTM2 is the synchornization time in a CDMA system and it can not be stopped. This is the code:
{void setTimer(void)
FTM2_SC &=(uint32_t)~0x18UL;
FTM2_C0V=0x7FFF;
FTM2_SC |=(uint32_t)0x18UL;
FTM2_C0SC &= (uint32_t)~0x80UL; //Clear flag to clean previous channel matches
FTM2_C0SC |= (uint32_t)0x40UL; // Channel match interrupt enabled
}
Any other solution?
Thanks,
Jose
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Jose,
give me sometime i will look into that.if you will get the solution please post it.
Thanks n Regards,
Robin
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Robin,
I'll do that.
Thanks
Jose
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Jose,
so what was problem?
Thanks n Regards,
Robin
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Sorry, I mean that I'll post the solution if I resolve the problem.
Thanks
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Jose,
can you mail me your complete code so that i can simulate on my pc.?
my email robinwithu@yahoo.co.in
Thanks n Regards,
Robin
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Jose,
can you initilize your FTM_MOD to 0xFFFF , register in first case and see the result.
Regards,
Robin