PWM2參數(shù)庫函數(shù)配置 PWM并未將start位置1
/******************** PCA配置 ********************/
void PWM15_config(void)
{
PWM15_InitTypeDef PWM15_InitStructure;
PWM15_InitStructure.PWM_Enable = ENABLE; //PWM使能, ENABLE, DISABLE
PWM15_InitStructure.PWM_Period = 0x0400; //PWM周期, 0~0x7fff
PWM15_InitStructure.PWM_Clock_Sel = PWMn_CLK_SYS; //時(shí)鐘源選擇, PWMn_CLK_SYS, PWMn_CLK_TM2
PWM15_InitStructure.PWM_Clock_PS = 2; //系統(tǒng)時(shí)鐘分頻參數(shù)(PS+1分頻), 0~15
PWM15_InitStructure.PWM_Counter = ENABLE; //計(jì)數(shù)器使能, ENABLE, DISABLE
PWM15_Init(PWM2,&PWM15_InitStructure);
PWMChannelCtrl(PWM20,ENABLE,0,DISABLE,DISABLE,DISABLE); //PWM_ID, 輸出使能, 初始電平, PWM中斷, 第二個(gè)觸發(fā)點(diǎn)中斷, 第一觸發(fā)點(diǎn)中斷
PWMChannelCtrl(PWM21,ENABLE,0,DISABLE,DISABLE,DISABLE); //PWM_ID, 輸出使能, 初始電平, PWM中斷, 第二個(gè)觸發(fā)點(diǎn)中斷, 第一觸發(fā)點(diǎn)中斷
//左臂
PWMChannelCtrl(PWM25,ENABLE,0,DISABLE,DISABLE,DISABLE); //PWM_ID, 輸出使能, 初始電平, PWM中斷, 第二個(gè)觸發(fā)點(diǎn)中斷, 第一觸發(fā)點(diǎn)中斷
PWMChannelCtrl(PWM23,ENABLE,0,DISABLE,DISABLE,DISABLE); //PWM_ID, 輸出使能, 初始電平, PWM中斷, 第二個(gè)觸發(fā)點(diǎn)中斷, 第一觸發(fā)點(diǎn)中斷
//右
PWMChannelCtrl(PWM24,ENABLE,0,DISABLE,DISABLE,DISABLE); //PWM_ID, 輸出使能, 初始電平, PWM中斷, 第二個(gè)觸發(fā)點(diǎn)中斷, 第一觸發(fā)點(diǎn)中斷
PWMChannelCtrl(PWM22,ENABLE,0,DISABLE,DISABLE,DISABLE); //PWM_ID, 輸出使能, 初始電平, PWM中斷, 第二個(gè)觸發(fā)點(diǎn)中斷, 第一觸發(fā)點(diǎn)中斷
PWM15Duty(PWM22,0x000,00); //PWM_ID, 輸出低電平位置, 輸出高電平位置
PWM15Duty(PWM23,0x000,00); //PWM_ID, 輸出低電平位置, 輸出高電平位置
PWM15Duty(PWM24,0x000,300); //PWM_ID, 輸出低電平位置, 輸出高電平位置
PWM15Duty(PWM22,300,0x0000); //PWM_ID, 輸出低電平位置, 輸出高電平位置
Motor3_Set(1,100);
}
void ADC_Config()
{
PWMCFG23 |= 0x02;//關(guān)聯(lián)PWM>ADC
ADCTIM = 0x80;
P_SW2|= 0x3f;
P_SW2&= 0x7f;
ADCCFG = 0x0f;
ADC_CONTR|=(1<<7);
ADC_CONTR|=(1<<4);
PWM2TADC = 0x0200; //200位置觸發(fā)
EADC = 1;
EA = 1;
ADC_CONTR |= 0x40; //僅在手動(dòng)置start后中斷了一次
}
|