在线时间13 小时
UID3505159
注册时间2018-9-4
NXP金币0
该用户从未签到
注册会员

- 积分
- 100
- 最后登录
- 2019-1-23
|

楼主 |
发表于 2018-10-20 20:23:29
|
显示全部楼层
本帖最后由 jungetiantianxiangshang 于 2018-10-20 20:25 编辑
初始化代码:
- uint8_t pwm_config(void)
- {
- sctimer_config_t sctimerInfo;
- sctimer_pwm_signal_param_t pwmParam;
- uint32_t sctimerClock=12000000U;
- SCTIMER_GetDefaultConfig(&sctimerInfo);
- SCTIMER_Init(SCT0, &sctimerInfo);
- pwmParam.output = kSCTIMER_Out_2;
- pwmParam.level = kSCTIMER_LowTrue;
- pwmParam.dutyCyclePercent = 20;
- if (SCTIMER_SetupPwm(SCT0, &pwmParam, kSCTIMER_CenterAlignedPwm, 24000U, sctimerClock, &event) == kStatus_Fail)
- {
- return -1;
- }
- pwmParam.output = kSCTIMER_Out_1;
- pwmParam.level = kSCTIMER_HighTrue;
- pwmParam.dutyCyclePercent = 50;
- if (SCTIMER_SetupPwm(SCT0, &pwmParam, kSCTIMER_CenterAlignedPwm, 24000U, sctimerClock, &event) == kStatus_Fail)
- {
- return -1;
- }
- SCTIMER_StartTimer(SCT0, kSCTIMER_Counter_L);
- return 1;
- }
复制代码
主函数main的while里面:
- while(1)
- {
- delay_ms(25);
- SCTIMER_UpdatePwmDutycycle(SCT0,kSCTIMER_Out_1,i,event);
- SCTIMER_UpdatePwmDutycycle(SCT0,kSCTIMER_Out_2,i,event);
- if(fx==1)
- {
- i++;
- }
- else
- {
- i--;
- }
- if(i<=1)
- {
- fx=1;
- }
- if(i>=100)
- {
- fx=0;
- }
- }
- }
复制代码
我是想实现Out_1和Out_2同时都输出占空比在变换的PWM呼吸灯效果,但是程序烧进去之后,只有一个会出现呼吸灯效果,另外一个占空比不变,经过多次测试,我发现和event这个变量有关,pwm_config()函数里面,如果先初始化(调用SCTIMER_SetupPwm())Out_1后初始化Out_2的话,Out_2就是可行的,Out_1占空比不变;如果先初始化Out_2后初始化Out_1的话,Out_1就是可行的,Out_2占空比不变。 |
|