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