找回密码
 立即注册
楼主: jack86

STC8H1K08 P1.2 用PWM调制周期和占空比

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-05-02 22:49:07

0

主题

79

回帖

1756

积分

金牌会员

积分
1756
发表于 2023-8-11 19:58:44 | 显示全部楼层
void Key_Config(void)                   //按键检测
{
   
        if((!JS )&&(!PA5)&&(ad3_flag_green = 1))
        {
                //PWMA_config();
                P11 = 0;
    }
        else
        {
                PWMA_BKR  = 0x00;  
        }
            

请问一下,初始化好好的,到了这一步,PWM波形就乱了。

点评

禁止了PWM,能不乱吗?  详情 回复 发表于 2023-8-11 21:19
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-8-11 21:19:54 | 显示全部楼层
STC8*** 发表于 2023-8-11 19:58
void Key_Config(void)                   //按键检测
{
   

禁止了PWM,能不乱吗?
回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-05-02 22:49:07

0

主题

79

回帖

1756

积分

金牌会员

积分
1756
发表于 2023-8-12 08:30:41 | 显示全部楼层
我程序的设想按下输出百分之五十,松手输出为0,该怎么着手。

点评

50%占空比也可以不用PWM,用定时器就可以输出。 按下设置、允许输出,松手就关闭输出,就这么简单。  详情 回复 发表于 2023-8-12 14:35
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-8-12 14:35:15 | 显示全部楼层
STC8*** 发表于 2023-8-12 08:30
我程序的设想按下输出百分之五十,松手输出为0,该怎么着手。

50%占空比也可以不用PWM,用定时器就可以输出。
按下设置、允许输出,松手就关闭输出,就这么简单。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:56
  • 最近打卡:2025-05-03 10:05:34

718

主题

1万

回帖

1万

积分

管理员

积分
15646
发表于 2023-8-12 16:07:18 | 显示全部楼层
1.png
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-05-02 22:49:07

0

主题

79

回帖

1756

积分

金牌会员

积分
1756
发表于 2023-8-12 16:24:11 | 显示全部楼层
void PWMA_Config(void)
{
            P_SW2 |= 0x80;
                PWMA_CCER1  = 0;
        PWMA_CCER2  = 0;
                PWMA_CCR2   = 400;
                PWMA_ARR    = 500;
        PWMA_CCMR2  = 0x68;        // 通道模式配置, PWM模式1, 预装载允许
      
        PWMA_CCER1 |= 0x50;        // 开启比较输出, 高电平有效
        PWMA_PS    |= (0<<2);      // 选择IO, 0:选择P1.2 P1.3, 1:选择P2.2 P2.3, 2:选择P6.2 P6.3,
        PWMA_ENO   &= ~0x08;        // IO输出允许,  bit7: ENO4N, bit6: ENO4P, bit5: ENO3N, bit4: ENO3P,  bit3: ENO2N,  bit2: ENO2P,  bit1: ENO1N,  bit0: ENO1P
        PWMA_BKR   |= 0x80;        // 主输出使能 相当于总开关
        PWMA_CR1    = 0x81;        // 使能计数器, 允许自动重装载寄存器缓冲, 边沿对齐模式, 向上计数,  bit7=1:写自动重装载寄存器缓冲(本周期不会被打扰), =0:直接写自动重装载寄存器本(周期可能会乱掉)
        PWMA_EGR    = 0x01;        // 产生一次更新事件, 清除计数器和预分频计数器, 装载预分频寄存器的值
       
}               



void Key_Config(void)                   //按键检测
{
   
        if((!JS )&&(!PA5)&&(ad3_flag_green = 1))
        {          
                PWMA_ENO |= 0x08;
        P11 = 0;
    }
        else
        {
                PWMA_ENO &= 0x08;  
        }
            
       
        if((!JS )&&(!PA5)&&(ad3_flag_orange = 1))
        {
                PWMA_ENO |= 0x08;
                P10 = 0;
                P11 = 0;
        }
        else
        {
                PWMA_ENO &= ~0x08;
        }
          

        if((!JS )&&(!PA5)&&(ad3_flag_red = 1))
        {
                PWMA_ENO |= 0x08;
                P10 = 0;                
        }
        else
        {
                PWMA_ENO &= ~0x08;        
        }

void main()
{
        
                IO_init_config();
                //PWMA_Init();
                Timer0_init();
                STC8G_ADC_Iint();        //STC8G系列10位AD初始化函数
               
                while(1)
                {
                        Change_Led();
                        Key_Config();
                        {
                                PWMA_Config();
                        }       
                }
}

这个PWM波形为什么是假的,经常在跳动
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-05-02 22:49:07

0

主题

79

回帖

1756

积分

金牌会员

积分
1756
发表于 2023-8-12 18:21:38 | 显示全部楼层
频率在跳动,还有杂波干扰。这是怎么回事了,梁工,指导一下。

点评

先测试我的例程“01C-PWMA-4对互补PWM输出P2口-间歇输出”,然后再移植修改。  详情 回复 发表于 2023-8-13 17:01
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-8-13 17:01:29 | 显示全部楼层
STC8*** 发表于 2023-8-12 18:21
频率在跳动,还有杂波干扰。这是怎么回事了,梁工,指导一下。

先测试我的例程“01C-PWMA-4对互补PWM输出P2口-间歇输出”,然后再移植修改。
STC8H系列-高级PWM相关程序.rar (2.02 MB, 下载次数: 101)

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-05-02 22:49:07

0

主题

79

回帖

1756

积分

金牌会员

积分
1756
发表于 2023-8-15 16:46:01 | 显示全部楼层
请教一下,这个MOS管怎么总是烧,50V60A的MOS,驱动24V 工作电流5A的电机,
烧MOS管.png

点评

GS两极并联一个12V的稳压二极管试试,应该不会再烧了。栅压要限制一下的,虽然你用的5V驱动,但是DG之间有电容的。  详情 回复 发表于 2023-8-15 17:39
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:51
  • 最近打卡:2025-05-02 10:07:51

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2023-8-15 17:39:24 | 显示全部楼层
STC8*** 发表于 2023-8-15 16:46
请教一下,这个MOS管怎么总是烧,50V60A的MOS,驱动24V 工作电流5A的电机,

GS两极并联一个12V的稳压二极管试试,应该不会再烧了。栅压要限制一下的,虽然你用的5V驱动,但是DG之间有电容的。
回复 支持 1 反对 0

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-3 12:55 , Processed in 0.146347 second(s), 102 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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