逻辑很简单,使用通用定时器2,设置每10us产生一次中断,然后在定时器中断里面设置IO口翻转,用示波器观察IO口的翻转频率
硬件上STM8S使用内部16MHZ使用,没有使用外部晶振。定时器2由f(master)二分频,即为2MHZ/2=1MHZ,即每1us计数一次。
设置ARR寄存器值为10,则应该是每10us产生一次中断,中断里面翻转IO,则IO的频率应该是1s/(10us*2)=50KHZ
然后实际测试发现ARR寄存器设置到150以下频率就不能再上去了,即1s/(150us*2)=3.3KHZ
ARR设置到150以上的所有测试波形都与理论计算符合,150以下所有的测试波形都为3.3KHZ!!!
请问是怎么回事呢??
|