找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1861|回复: 0
打印 上一主题 下一主题
收起左侧

STC8G系列单片机 PWM无法触发ADC求教!

[复制链接]
跳转到指定楼层
楼主
ID:884210 发表于 2021-2-14 18:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PWM2参数库函数配置 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;                //时钟源选择,  PWMn_CLK_SYS, PWMn_CLK_TM2
        PWM15_InitStructure.PWM_Clock_PS  = 2;                                //系统时钟分频参数(PS+1分频),  0~15
        PWM15_InitStructure.PWM_Counter   = ENABLE;                //计数器使能,  ENABLE, DISABLE
        PWM15_Init(PWM2,&PWM15_InitStructure);
       
       
        PWMChannelCtrl(PWM20,ENABLE,0,DISABLE,DISABLE,DISABLE);        //PWM_ID, 输出使能, 初始电平, PWM中断, 第二个触发点中断, 第一触发点中断
        PWMChannelCtrl(PWM21,ENABLE,0,DISABLE,DISABLE,DISABLE);        //PWM_ID, 输出使能, 初始电平, PWM中断, 第二个触发点中断, 第一触发点中断
        //左臂
        PWMChannelCtrl(PWM25,ENABLE,0,DISABLE,DISABLE,DISABLE);        //PWM_ID, 输出使能, 初始电平, PWM中断, 第二个触发点中断, 第一触发点中断
        PWMChannelCtrl(PWM23,ENABLE,0,DISABLE,DISABLE,DISABLE);        //PWM_ID, 输出使能, 初始电平, PWM中断, 第二个触发点中断, 第一触发点中断
        //右
        PWMChannelCtrl(PWM24,ENABLE,0,DISABLE,DISABLE,DISABLE);        //PWM_ID, 输出使能, 初始电平, PWM中断, 第二个触发点中断, 第一触发点中断
        PWMChannelCtrl(PWM22,ENABLE,0,DISABLE,DISABLE,DISABLE);        //PWM_ID, 输出使能, 初始电平, PWM中断, 第二个触发点中断, 第一触发点中断
       
        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;//关联PWM>ADC
       
        ADCTIM = 0x80;
        P_SW2|= 0x3f;
        P_SW2&= 0x7f;
        ADCCFG = 0x0f;
       
        ADC_CONTR|=(1<<7);
        ADC_CONTR|=(1<<4);
        PWM2TADC = 0x0200;                                //200位置触发

        EADC = 1;
        EA = 1;
       
        ADC_CONTR |= 0x40;                                        //仅在手动置start后中断了一次

}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表