高级会员
- 积分
- 807
- 威望
- 380
- 贡献
- 223
- 兑换币
- 246
- 注册时间
- 2012-12-31
- 在线时间
- 102 小时
|
芯片:K60。问题:初始化FTM1_pwm模块频率150HZ,SD5舵机频率在50HZ——300HZ,没有超过频率,为何LM2940稳压芯片会严重发烫?舵机本身没坏,放到XS128那组还是能用的。望知识帝给点指导,感激不尽。/*********************************************************************- /*********************************************************************
- * 函 数 名:FTM1_PWM_Init
- * 功 能:FTM1模块PWM功能初始化函数
- * 参 数:freq--期望频率,单位Hz
- * 返 回 值:0--配置错误 1--配置成功
- ********************************************************************/
- uint8_t FTM1_PWM_Init(uint32_t freq)
- {
- uint32_t bus_clk_hz;
- uint32_t mod;
- uint8_t ps;
- bus_clk_hz = periph_clk_khz*1000;
-
- if(freq>bus_clk_hz) return 0;
-
- if((mod=bus_clk_hz/(freq*128)) < 0xFFFFu)
- {
- ps = 7;
- CAR_FTM1_MOD = mod;
- if((mod=bus_clk_hz/(freq*64)) < 0xFFFFu)
- {
- ps = 6;
- CAR_FTM1_MOD = mod;
- if((mod=bus_clk_hz/(freq*32)) < 0xFFFFu)
- {
- ps = 5;
- CAR_FTM1_MOD = mod;
- if((mod=bus_clk_hz/(freq*16)) < 0xFFFFu)
- {
- ps = 4;
- CAR_FTM1_MOD = mod;
- if((mod=bus_clk_hz/(freq*8)) < 0xFFFFu)
- {
- ps = 3;
- CAR_FTM1_MOD = mod;
- if((mod=bus_clk_hz/(freq*4)) < 0xFFFFu)
- {
- ps = 2;
- CAR_FTM1_MOD = mod;
- if((mod=bus_clk_hz/(freq*2)) < 0xFFFFu)
- {
- ps = 1;
- CAR_FTM1_MOD = mod;
- if((mod=bus_clk_hz/(freq*1)) < 0xFFFFu)
- {
- ps = 0;
- CAR_FTM1_MOD = mod;
- }
- }
- }
- }
- }
- }
- }
- }
- else
- {
- return 0;
- }
-
- // 使能FTM时钟模块
- SIM_SCGC6 |= SIM_SCGC6_FTM1_MASK;
-
- // 配置FTM控制寄存器
- // 禁用中断, 加计数模式, 时钟源:System clock(Bus Clk), 分频系数:8
- // 假设SysClk = 50MHz, SC_PS=3, FTM Clk = 50MHz/2^3 = 6.25MHz
- FTM1_SC = FTM_SC_CLKS(1)|FTM_SC_PS(ps);
-
- // 设置PWM周期及占空比
- // PWM周期 = (MOD-CNTIN+1)*FTM时钟周期 :
- // 配置FTM计数初始值
- FTM1_CNT = 0;
- FTM1_CNTIN = 0;
- // 配置FTM计数MOD值
- FTM1_MOD = CAR_FTM1_MOD;
-
- return 1;
- }
复制代码
|
|