在线时间10 小时
UID3314662
注册时间2016-9-25
NXP金币0
该用户从未签到
注册会员

- 积分
- 86
- 最后登录
- 2018-3-26
|
如题,我想用FTM2CH5产生PWM波,然后用ADC0_SE11采集电压,程序中FTM及ADC模块设置如下:
/*设置ADC模块*/
ADC_ConfigType sADC_Config = {0};
sADC_Config.u8ClockDiv = ADC_ADIV_DIVIDE_4;
sADC_Config.u8ClockSource = CLOCK_SOURCE_BUS_CLOCK;
sADC_Config.u8Mode = ADC_MODE_12BIT;
sADC_Config.sSetting.bIntEn = 1;
sADC_Config.u8FiFoLevel = ADC_FIFO_LEVEL2;
ADC_SetCallBack(ADC_CallBack);
ADC_Init( ADC, &sADC_Config);
ADC_SetChannel(ADC,ADC_CHANNEL_AD11);
ADC_SetChannel(ADC,ADC_CHANNEL_AD22_TEMPSENSOR);
/*设置PWM波*/
FTM_PWMInit(FTM2, FTM_PWMMODE_EDGEALLIGNED, FTM_PWM_HIGHTRUEPULSE);
/* FTMEN enable */
FTM_SetFTMEnhanced(FTM2);
/* update MOD value */
FTM_SetModValue(FTM2, 15999);
/* set clock source, start counter */
FTM_ClockSet(FTM2, FTM_CLOCK_SYSTEMCLOCK, FTM_CLOCK_PS_DIV1);
/* enable FTM2 interrupt in NVIC */
NVIC_EnableIRQ(FTM2_IRQn);
/* setup call back function for interrupt */
FTM_SetCallback(FTM2, FTM2_Task);
/* enable FTM2 overflow interrupt */
FTM_EnableOverflowInt(FTM2);
FTM_ClrOverFlowFlag(FTM2);
u16ChV_new = 8000;
FTM_SetChannelValue(FTM2, FTM_CHANNEL_CHANNEL5, u16ChV_new);
这样设置后FTM2CH5可以出PWM波,但是同时ADC0_SE11也会输出PWM波(这个引脚功能是复用的,可以用作ADC0_SE11也可用作FTM2_CH3),但这个PWM波跟通道5的PWM波周期不同,同时AD也能读到这个PWM波的值,这是为什么?哪位大神能帮我解答一下?不胜感激!
最佳答案
liqing666 发表于 2016-10-25 19:39
还想请教一下,就是关于ADC转换的问题,我现在同时开启了3个通道如下:
ADC_SetChannel(ADC,ADC_CHANNEL_ ...
楼主你好!
请请参考官方的FIFO ADC例程,如果你同时转换3个通道, ...
|
|