K10 FTM2 Set/GetOffsetTicks problems

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

K10 FTM2 Set/GetOffsetTicks problems

跳至解决方案
1,570 次查看
MarkP_
Contributor V

Hi,

the problem is that SetOffsetTicks doesn't work always. Function is called about once a second.

Quite often the new value doesn't go to HW, and readback by GetOffsetTicks returns the previous CnV value.

is there any knwon issue ni HW or PE-generated code?

Does FTM2 write erroneously the earlier value from cache register?

 

Checked the generated C code and disassemble-file, seems to be OK.

CPU revision is 0N96B, errata doesn't mention this kind of problem.

 

Added test counters:

TMR_SetCount[ChannelIdx]++;

TMR_GetCount[ChannelIdx]++;

They show that Set/Get functions are called correctly.

 

~Mark

标签 (1)
标记 (1)
0 项奖励
回复
1 解答
1,407 次查看
ProcessorExpert
Senior Contributor III

Hi,

 

The problem is  probably that the register is buffered - that's why you  don't immediatelly read the written value, because you read the current value of the counter not what you wrote. When the register is written, the value is applied after te buffer is synchronized to the counter. It depends on the settings but the register should be synchronized after the end of the period. To force synchronization, it's necessary to disable and enable the timer again.

 

best regards
Petr Hradsky
Processor Expert Support Team

 

 

在原帖中查看解决方案

0 项奖励
回复
1 回复
1,408 次查看
ProcessorExpert
Senior Contributor III

Hi,

 

The problem is  probably that the register is buffered - that's why you  don't immediatelly read the written value, because you read the current value of the counter not what you wrote. When the register is written, the value is applied after te buffer is synchronized to the counter. It depends on the settings but the register should be synchronized after the end of the period. To force synchronization, it's necessary to disable and enable the timer again.

 

best regards
Petr Hradsky
Processor Expert Support Team

 

 

0 项奖励
回复