【翌创ETEB-6001DPX测评】第7篇 定时器测试
<p> </p><p ><span style="font-size:20px;"><span style="color:#c0392b;"><b>一</b><b> </b><b>定时器简介</b></span></span></p>
<p >ET系列MCU一共分为4个定时器</p>
<p >PITIMER通用定时器</p>
<p >STIMER超级定时器</p>
<p >ETIMER增强型定时器</p>
<p >SRPWM高精度脉宽调制器</p>
<p > </p>
<p > </p>
<p > </p>
<p > </p>
<p > </p>
<p > </p>
<p >STM32F7的定时器分为</p>
<p >基本定时器、通用定时器、高级控制定时器</p>
<p > </p>
<p > </p>
<p > </p>
<p > </p>
<p >总结:</p>
<p >第一种定时器,ET叫通用定时器,ST叫基本定时器,功能看起来感觉是差不多</p>
<p >第二种定时器,ET叫超级定时器,ST叫通用定时器,ET超级定时器其实没有什么大变化,只是增加了4个比较事件和触发源等,ST的则升级较多,带了PWM、比较器、捕获等等</p>
<p >第三种定时器,ET叫增强型定时器,ST叫高级定时器,ST的应该是扩展了一些应用场景,比如电机控制等,增加了死区等等。ET的升级则比较多,在PWM发波、捕获功能、中断等方面感觉是远超过ST的功能的。但是是不支持死区控制的,所以可能电机驱动等场合可能不太好用。</p>
<p >第四种定时器,ET增加了高精度脉宽调制器SRPWM,12通道共24路PWM,支持高精度调制,支持独立的定时单元,整个功能非常强大,感觉已经远超过了ST的高级定时器功能</p>
<p > </p>
<p >基本的定时器的结构体比较</p>
<p >ET的结构体</p>
<p > </p>
<p >ST的结构体</p>
<p > </p>
<p ><span style="color:#c0392b;"><span style="font-size:20px;"><b>二</b><b> </b><b>代码测试</b></span></span></p>
<p ><b>2.1 PTIMER</b><b>和</b><b>STIMER</b><b>,两个差不多,用来做一些计数定时</b></p>
<p >ST的初始化函数大致这样</p>
<p > </p>
<p >ET的定时器基本的初始化</p>
<p > </p>
<p >差不太多</p>
<p > </p>
<p >测试代码:</p>
<p >start = STIM_GetCounterValue(STIM3);</p>
<p >SYSCNT_Delay(1000);</p>
<p >end = STIM_GetCounterValue(STIM3);</p>
<p >diff = end > start ? end - start : 0xffffffffffffffff - start + end;</p>
<p >printf("STIM3 counter start is %lldus, end is %lldus, diff is %lldus in 1000000us delay\n", start, end, diff);计算定时器的时间</p>
<p >测试结果:</p>
<p > </p>
<p > </p>
<p > </p>
<p > </p>
<p > </p>
<p ><b>2.2 ETIMER PWM</b><b>输出</b></p>
<p >ST的初始化函数</p>
<p > </p>
<p > </p>
<p >PWM差异还是有一些,毕竟ET的PWM增加了要好一些功能</p>
<p >PWM输出这一块多了一个COMPA和COPMA+COMPB模式</p>
<p > </p>
<p >没有深入研究,至少编程感觉是计算占空比比ST是容易些了,这种输出方式对新手来说感觉配起来更加简单</p>
<p >代码设置为COMPA模式</p>
<p > </p>
<p >TIMER小于COMPA,PWM输出1</p>
<p >计算公式: T = (period + 1) * (prescaler + 1) / Fetimer,周期:250us </p>
<p >频率:4KHz</p>
<p >COMPA的值设置为Period/4,小于COMPA输出1,也就是占空比:25%</p>
<p >这个地方改占空比很方便了</p>
<p > </p>
<p > </p>
<p >这个IO口复用,比STM32的简单太多了,基本就一句语句就完成了复用功能。</p>
<p > </p>
<p >IOC_Config(IOC_PIN_GPIO_PLL_REF, &cfg); // 将该管脚复用为etimer0</p>
<p > </p>
<p >逻辑分析仪接在132脚上测试波形</p>
<p > </p>
<p >输出结果:</p>
<p > </p>
<p>我支持国产芯片,希望大家多使用国产芯片</p>
<p>我支持国产芯片,希望大家多使用国产芯片我支持国产芯片,希望大家多使用国产芯片我支持国产芯片,希望大家多使用国产芯片</p>
humancat01 发表于 2024-12-3 17:06
我支持国产芯片,希望大家多使用国产芯片我支持国产芯片,希望大家多使用国产芯片我支持国产芯片,希望大家 ...
<p>必须支持国产芯片!!!!!!</p>
页:
[1]