找回密码
 立即注册
查看: 421|回复: 2

关于STC8A8K64D4单片机中15bit增强型PWM的 归零中断 问题

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-4-3 09:25:37 | 显示全部楼层 |阅读模式
关于试验箱例程中 避免第一次开启PWM计数时 会触发一次归零中断的避免方法这里

截图202404030915512087.jpg

  1. //PWMCEN写0再写1时, 会立即产生一个归零中断, 通过以下方法屏蔽掉这个中断
  2.                 EA = 0;
  3.                 PWMCFG = 0x05; //启动 PWM 模块, 使能计数器归零中断
  4.                 _nop_();
  5.                 _nop_();
  6.                 PWMCFG &= ~0x08;        //清标志位
  7.                 EA = 1;
复制代码
是否可以理解为 关闭总中断后 开启PWM计数时 虽然归零标志位仍然会置位但是 由于关闭了总中断,清除了归零标志之后 再打开总中断也不会触发 PWM中断。。

那么基于以上理解,那是不是可以不用关闭总中断。 只是 不开启归零中断,在清除了归零标志位后再开启归零中断,,是否可以达到相同的效果。
  1.     PWMCFG |= PWMCEN; // 启动PWM 但不开启归零中断
  2.     _nop_();
  3.     _nop_();
  4.     PWMCFG &= ~PWMCBIF; // 清标志位
  5.     PWMCFG |= PWMCBIE; //开启归零中断
复制代码


参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复

使用道具 举报 送花

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

73

主题

5883

回帖

1万

积分

超级版主

积分
12081
发表于 2024-4-3 22:57:31 | 显示全部楼层
基本上,正常的开启中断都是: 清除中断标志,NOP(3); 开中断。
比如外中断INT0~INT4用于下降沿中断,在禁止终端期间,只要出现过下降沿,则中断标志就为1,一旦允许中断,马上进去,所以要先清除中断标志,NOP(3); 开中断。
同理,定时器也一样,一旦溢出,中断标志就会置1,开中断前,先清除标志,NOP(3); 再开中断。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-04-30 08:43:23

33

主题

2351

回帖

4860

积分

论坛元老

积分
4860
发表于 2024-4-7 16:32:11 | 显示全部楼层
梁*** 发表于 2024-4-3 22:57
基本上,正常的开启中断都是: 清除中断标志,NOP(3); 开中断。
比如外中断INT0~INT4用于下降沿中断,在禁 ...

嗯嗯 虽然没有正面回答我的问题,,

但是梁工描述的和我理解的基本吻合,,
参考例程并不是对技术参 考手册的补充,而是对技术参 考手册的解释。
技术参 考手册不应该需要参考例程作为补充,而是解释成了参考例程的样子
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-3 15:07 , Processed in 0.150341 second(s), 61 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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