|
具体描述一下芯片名称,定时器达到多少频率以后异常,异常的判断标准,定时器是如何配置的。
用的是STM32F407VET6,TIM1时钟150Mhz,中断服务函数(溢出中断)中添加计数变量(cnt),进行PWM脉冲数计算。main函数while(1),进行脉冲数判断,关闭中断和PWM输出。设置PWM频率12.5Mhz时,仿真查看cnt,有参数显示,但while(1)内容未执行。调整为100KZ时,一切正常。
看了你的补充描述,你的while(1)内没法正常计数,估计是因为高频时中断过于频繁,来不及运行用户程序的计数操作。如果这样的话, 或许根本就没有什么异常,只是个误会。
while里面的代码是如何判断的?是否一直在判断,还是有等待。如果定时器频率太高,某些操作可能导致判断不及时导致判断失败。
看了你的补充描述,你的while(1)内没法正常计数,估计是因为高频时中断过于频繁,来不及运行用户程序的计数 ...
需求是输出12.5mh的PWM,并且能够知道脉冲数。如果用其他定时器去计数的话,产生的中断数其实是一样的啊。同样会影响主函数执行的啊。除非是定义中断,只去查看计数器的计数值来判断脉冲数,而不是去通过中断计数。
while里面的代码是如何判断的?是否一直在判断,还是有等待。如果定时器频率太高,某些操作可能导致判断不 ...
一直在判断的,没有延时。
大伙说的频率达到12.5MHZ,那么中断时间就0.08us。 中断程序跑不过来,所以程序跑不出来了,中断太快太频繁。