在线时间1 小时
UID1520334
注册时间2020-6-26
NXP金币0
该用户从未签到
新手上路

- 积分
- 16
- 最后登录
- 2020-7-2
|
用KEA8做的互补PWM输出,那个FTM2_C4V的值一直写不进去
不知道为什么
//使能FTM2的总线时钟
SIM_SCGC |= SIM_SCGC_FTM2_MASK;
//写保护禁止
FTM2_BASE_PTR->MODE |= FTM_MODE_WPDIS_MASK;
FTM2->MOD=MODValue;
FTM2_BASE_PTR->MODE = 0X05;
FTM2_C4V=100;
//总线时钟频率24MHz,分频因子16,分频后为1.5MHz
// FTM2_BASE_PTR->SC |= FTM_SC_PS(4);
//左对齐,先高电平后低电平
FTM_CnSC_REG(FTM2_BASE_PTR, 4) = 0x04;
//边沿对齐
/// FTM_CnSC_REG(FTM2_BASE_PTR, 4) &= ~FTM_CnSC_ELSA_MASK;
// FTM_CnSC_REG(FTM2_BASE_PTR, 4) |= FTM_CnSC_MSB_MASK;
//计数器清零
//中断禁止
FTM2_BASE_PTR->SC = 0x08;
//FTM2使能
FTM2_BASE_PTR->MODE &= ~FTM_MODE_FTMEN_MASK;
//启用需要的输出通道,屏蔽其他通道
FTM2_BASE_PTR->OUTMASK = 0x0f;//只保留FTM2的CH4和CH5使用
//禁止双边沿捕捉模式
FTM2_DEADTIME=0x3f;//死区
FTM2_BASE_PTR->COMBINE =0x00330000;
//FTM2计数初始值为0
FTM2_BASE_PTR->CNTIN = 0;
//周期=(MOD-CNTIN+1)*时钟周期=2.5ms
//FTM2_BASE_PTR->MOD = MODValue;
// MOD_VALUE = 12;
//计算通道寄存器的值,设置占空比
// duty_channel = (uint16_t)((float)MOD * duty / 100);
//设置通道值寄存器
FTM2_BASE_PTR->CNT=0;
FTM_CnV_REG(FTM2_BASE_PTR, 4) = 100;//设置占空比
FTM2_EXTTRIG=0X04;
FTM2_C4V=100;
//使用总线时钟
FTM2_BASE_PTR->SC |= FTM_SC_CLKS(1);
|
-
|