项目要驱动步进电机,步进电机驱动芯片是脉冲输入的,实际项目最高的脉冲频率<20KHz,脉冲数要用32位长度。
计划用两定时器:
一个定时器根据频率计算出周期,然后设置预分频系数和计数值,由硬件引脚输出一个PWM(占空比50%)。
另一个定时器设置为ETP或外部TIx为计数时钟。32位脉冲长度,低16为作为一个捕获通道捕获值,计数器值为0xFFFF,发生捕获时,对一个变量从0开始累加,累计值和32位脉冲长度高16位相同时,停止发送脉冲。
PWM 输出引脚和和第二个定时器的ETR引脚硬件直接连接。
这个方案可行吗?
另外 外部时钟模式1:外部输入脚(TIx) 外部触发输入(ETR) 有何区别? 是不是可以用内部触发输入(ITRx) 而不需要外部硬件触发引脚?
这个方案在输出频率高时脉冲精度好,而输出频率低,周期长时,由与预分频系数较大,精度反而变差了,如何解决? |