找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1861|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STC8G系列單片機(jī) PWM無法觸發(fā)ADC求教!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:884210 發(fā)表于 2021-2-14 18:28 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
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后中斷了一次

}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表