<h1>测试平台介绍</h1>
<ul>
<li>STM32F103C8T6是嘉立创地阔星最小系统板</li>
<li>AT32F421C8T7最小系统板(自制)</li>
<li>AI8051U最小系统板(自制)</li>
</ul>
<p><img src="data/attachment/forum/202504/26/131807mgyohauti1z09u1t.jpg" alt="微信图片_20250426131452.jpg" title="微信图片_20250426131452.jpg" /></p>
<h1>测试代码介绍</h1>
<ul>
<li>
<pre><code>int i;
float a = 3.1415926f, b = 2.71828f, c = 0.0f;
float temp;
float result;
for(int i = 0; i < 1000; i++) {
c = a + b;
c = a - b;
c = a * b;
c = a / b;
temp += c;
}
for(int i = 0; i < 1000; i++) {
c = sqrt(a);
c = sin(a);
c = exp(b);
c = a*b + c/b;
result += c;
}
</code></pre>
<h2>测试方案</h2>
<ul>
<li>使用PWM输入捕获上升沿和下降沿,测一个IO高点电平的宽度。得到计算时间,在需要计算的部分,令一个IO为高电平,计算结束之后,使这个IO为低电平。使用PWM输入捕获这个引脚的电平,在定时器中断内部输出计数值。定时器分频之后的计数频率为1Mhz即可。比如STM32定时器的定时器输入频率为72Mhz,那么就需要定时器分频系数为71,AT32的定时器输入频率为120Mhz,那么就需要分频系数为119,AI8051U同理。</li>
<li>编译器编译优化关闭,都为-O0</li>
</ul>
</li>
</ul>
<p><img src
- 最近查阅:
