Timer STM8定时器未在正确的时间滴答作响
我正在使用一个STM8定时器(不是我的代码,而是维护它),它使用一个定时器。显然,时钟设置为16MHz erfo 0.0625uS。计时器的设置为ARRH=0x03 ARRL=0x20,因此(0x0320=800)重置为800(ergo 50us) PSCR设置为0,因此计时器的频率与micro相同 无论如何,当用示波器检查时,它不会给出良好的读数。 定时器中断在以下位置调用: 56us,54uS,54uS,52uS,52uS,52uS,38us(!!!),42us(?),50us,50us 库里奥斯利总结说,它给了我们500美元,所以它确实是50美元的10倍 在定时器中断的前8次,一些AD转换正在发生,因此在这期间也有可能调用AD中断 1) 你认为这会影响计时器的频率吗 2) 为什么它通过在38uS处触发中断来“纠正”自身Timer STM8定时器未在正确的时间滴答作响,timer,stm8,Timer,Stm8,我正在使用一个STM8定时器(不是我的代码,而是维护它),它使用一个定时器。显然,时钟设置为16MHz erfo 0.0625uS。计时器的设置为ARRH=0x03 ARRL=0x20,因此(0x0320=800)重置为800(ergo 50us) PSCR设置为0,因此计时器的频率与micro相同 无论如何,当用示波器检查时,它不会给出良好的读数。 定时器中断在以下位置调用: 56us,54uS,54uS,52uS,52uS,52uS,38us(!!!),42us(?),50us,50us 库
如果您有任何关于嵌入式或STM8的经验,我将不胜感激,因为我知道准确的答案需要检查代码…我不确定您是否还需要答案。我曾经有过同样的经历,并且寻找了很长时间。。。在我的例子中,简单的解决方案是: 我有一个高抖动的ADC ISR。来自我的主回路。在某些子程序中,ADC中断在关键部分(中断和主回路上下文之间的数据传输)被暂时停用。效果正是您所描述的: 有时两次中断之间的时间较长,因为中断处于挂起状态,等待执行,直到中断再次启用。计时器仍在继续运行。定时示例:
我希望我能帮忙。我不确定你是否还需要答案。我曾经有过同样的经历,并且寻找了很长时间。。。在我的例子中,简单的解决方案是: 我有一个高抖动的ADC ISR。来自我的主回路。在某些子程序中,ADC中断在关键部分(中断和主回路上下文之间的数据传输)被暂时停用。效果正是您所描述的: 有时两次中断之间的时间较长,因为中断处于挂起状态,等待执行,直到中断再次启用。计时器仍在继续运行。定时示例: