原创 STM32 输出多路不同频率的脉冲

2017-6-15 11:29 2833 15 15 分类: 处理器与DSP

一个定时器产生多个频率输出


使用一个tim产生20KHz的定时中断。将需要输出的速度设定好,每次将设定的速度与上一次的结果取模累加,结果大于等于10000则取反输出。

每个通道使用一个结构体,里面包含


define PWMCLK 20000


define CLKCMP PWMCLK / 2


Typedef Struct stPwmCh{

Uint16_t pps;

Uint16_t ppscnt; //保存上一次的取模值

Uint8_t lastoutput; //保存上一次的输出值 0 or 1

Uint32_t pulsecnt; //保存需要输出的脉冲数

}

程序中,读取pulsecnt,如果不为0,将ppscnt + pps,结果取模CLKCMP存放在ppscnt,并判断如果结果大于 CLKCMP,判断lastoutput 如果为0 则输出为1 并将pulsecnt - 1。


设置为998hz时:


3hz 时:


文章评论0条评论)

登录后参与讨论
相关推荐阅读
southcreek 2023-09-12 17:44
用QT做一个搜索DC-DC配置电阻的工具
设计DC-DC电路时,常常需要依据芯片的参考电压和需要的输出电压来计算配置电阻。在常用的电阻中找到合适的组合。 一个条件,求两个未知数。实际上并不容易得到想要的数据。不过可以将可选电阻值范围内,尝试...
southcreek 2023-09-06 17:37
QT中使用全局的类
在QT中不同模块之间传递数据可以使用全局共享的方式,比如建立一个称为SysPara 的类继承于QObject 类。 头文件中公有函数中提供一个获取这个类的指针 GetInstance() ...
southcreek 2023-08-25 11:48
QT 独立的窗口显示折线
在原工程中新创建一个界面类。系统会生成一个窗口ui及相应的描述这个form的类头文件和CPP文件并加入到工程中。 将类名修改成想要的类型后。直接生成。   ...
southcreek 2023-07-06 13:14
加温器的建模控制仿真和实例分析
    罗昊  southcreek's product这个加温器建模如下:输入的设定温度与输出的温度比较,将比较值使用PI调节器处理,输出控制。温度模型由实际加温装置测...
southcreek 2023-06-25 15:37
远端EEPROM热拔插可靠性设计
罗昊  southcreek product 这个设计使用一个EEPROM放置在应用部分上。用约一米长的电缆与主机相连,可以带电拔插。用于记录应用部分的使用状况。 为...
southcreek 2023-06-15 15:05
NTC测温电阻线性化输出的分析
                    罗昊 southcreek product&nbs...
我要评论
0
15
1
2
3
4
5
6
7
8
9
0
关闭 站长推荐上一条 /4 下一条