找回密码
 立即注册
查看: 402|回复: 3

STC32G12K128 PWM用作定时器,会宕机

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-03-27 08:17:56

5

主题

11

回帖

97

积分

注册会员

积分
97
发表于 2024-5-28 08:29:12 | 显示全部楼层 |阅读模式
STC32G12K128


#define        MAIN_Fosc        33177600L
#define        PSCRA        1
#define PWMA_T1 MAIN_Fosc/PSCRA/1000  //1KHZ, 1ms
void         PWM_Timer(void)
{
        PWMA_PSCRH=(PSCRA-1)>>8;//设置预分频器
        PWMA_PSCRL=(PSCRA-1);       
        PWMA_ARRH=0xff;//先高后低, 预装载寄存器(0xffff)
        PWMA_ARRL=0xff;
       
        PWMA_CCER1=0x00;//
        PWMA_CCMR1=0x00;//通道1比较方向为输出




        PWMA_CCR1H=PWMA_T1>>8;
        PWMA_CCR1L=PWMA_T1;

        PWMA_IER=0x02;//使能通道1比较中断(更新中断不开放)
        PWMA_CR1|=0x81;//使能ARR预装载,边沿对齐向上计数,发生更新事件时计数器不停止,开始计时
}


void         isr_PWMA() interrupt 26 //pwma  PWM_Timer
{

        UCHAR        sr;
        UINT           TEMP;
      
         sr=PWMA_SR1;
         if(sr&0x02){//通道1
             PWMA_SR1&=~0x02;



             if(!b_EnPwmTimer){return;}            //这里如果PWMA_CCR1H,PWMA_CCR1L   不赋一个新值直接返回(原值也不行),会宕机
             TEMP=(PWMA_CCR1H<<8)+PWMA_CCR1L+NewGap ;  //NewGap 为定时器新的间隔
             PWMA_CCR1H=TEMP>>8;
             PWMA_CCR1L=TEMP;


         }

}
        
        
        
回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-30 10:59:33

25

主题

1154

回帖

2391

积分

超级版主

积分
2391
发表于 2024-5-28 09:49:43 | 显示全部楼层
本帖最后由 STCAI-32位8051 于 2024-5-28 09:51 编辑

数据手册里有范例程序可参考:

截图202405280949396249.jpg
另下面这个帖子也可参考内容:


【新提醒】关于STC32高级PWM的定时功能使用 - BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC 国芯技术交流网站 - STC全球32位8051爱好者互助交流社区  https://www.stcaimcu.com/forum.p ... e=1&extra=#pid24997



STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-03-27 08:17:56

5

主题

11

回帖

97

积分

注册会员

积分
97
发表于 2024-5-28 10:18:34 | 显示全部楼层
STCAI-32*** 发表于 2024-5-28 09:49
数据手册里有范例程序可参考:

看清楚,我问的是为什么不赋新值会宕机?以前的有pca的芯片,利用pca做定时器,不赋新值也不会宕机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:294
  • 最近打卡:2025-03-06 09:25:41

8

主题

318

回帖

1835

积分

金牌会员

积分
1835
发表于 2024-5-28 11:53:04 | 显示全部楼层
cit*** 发表于 2024-5-28 10:18
看清楚,我问的是为什么不赋新值会宕机?以前的有pca的芯片,利用pca做定时器,不赋新值也不会宕机 ...

会不会是没有清COMIF?
2024-05-28_115124.png

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-4 05:57 , Processed in 0.111057 second(s), 74 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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