cenconl 发表于 2023-6-30 14:49:35

STC32G8K64固定脉冲数输出

您好!请教一下,我看咱们的官方例程有一个高级PWM输出(频率可调,脉冲计数)的例程,例程用了单脉冲输出模式,但RCR寄存器是一个8位的寄存器,单次最大只能发送255个脉冲,我想发送更多的脉冲应该怎样做呢?有没有相应的例程呀。

我看论坛有一个步进电机驱动相关的程序,但这个例程好像频率不适合太快。我想最高发送200KHZ的脉冲频率。
谢谢!

乘风飞扬 发表于 2023-7-3 18:50:48

发送超过255个脉冲的话可用软件方式在中断里计数:



cenconl 发表于 2023-7-4 11:36:47

嗯,如果是使用软件在中断里计数,在极端情况下使用PWMA和PWMB 2个通道同时输出200khz频率的脉冲,会造成非常频繁的中断(如果我没算错的话,5us要响应中断2次),导致主程序运行明显变慢。严重的情况下会不会卡死。

梁工 发表于 2023-7-20 14:12:14

步进电机驱动,在中断里计数,可以用一个u32类型的变量,最多42.9亿个脉冲。
也可以将输出脉冲接到一个计数器的输入,这样PWM就可以不用中断,计数脉冲数到,计数器中断,关闭PWM输出即可。

tianxu0829 发表于 2023-12-13 16:39:44

梁工 发表于 2023-7-20 14:12
步进电机驱动,在中断里计数,可以用一个u32类型的变量,最多42.9亿个脉冲。
也可以将输出脉冲接到一个计数 ...

梁工,官方的“匹配翻转输出脉冲控制步进电机驱动器”能不能4个通道同时输出不同频率脉冲?

梁工 发表于 2023-12-13 22:35:50

tianxu0829 发表于 2023-12-13 16:39
梁工,官方的“匹配翻转输出脉冲控制步进电机驱动器”能不能4个通道同时输出不同频率脉冲? ...

当然可以,两组PWM可以控制8个电机的脉冲,各自独立。
由于需要中断配合,所有当有4路电机时,最高频率最好在20KHz以内(4路同时输出20KHz时需要处理160KHz的中断)。
页: [1]
查看完整版本: STC32G8K64固定脉冲数输出