搜索
bottom↓
回复: 13

新塘N76E003 为何修改PWM频率,需要等待6s以上时间?

[复制链接]

出5入10汤圆

发表于 2017-11-16 16:36:58 | 显示全部楼层 |阅读模式
本帖最后由 涵潇舒雅 于 2017-11-16 16:38 编辑


如上图所示,当设置完PWM的频率及占空比之后,需要等待至少6s的时间,如黄色箭头所示,我修改2次,等待6S以上,PWM才会有输出,不知道有没有用过的?
  1. set_LOAD;

  2. while(1 == LOAD);
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-11-16 16:43:16 | 显示全部楼层
不可能啊。这个肯定是代码的问题

有些没有细节不够到位的的MCU设计,可能会有一些时钟延时,但任何一家都不可能有6s的,定时器都没这么长的位

出0入57汤圆

发表于 2017-11-16 16:55:17 | 显示全部楼层
这是你pwm的duty吧

出5入10汤圆

 楼主| 发表于 2017-11-16 17:31:51 | 显示全部楼层
FireHe 发表于 2017-11-16 16:43
不可能啊。这个肯定是代码的问题

有些没有细节不够到位的的MCU设计,可能会有一些时钟延时,但任何一家都 ...
  1. if ( ( fre != frePrev || k_hz != K_HZ[0] ))
  2.     {

  3.         if ( fre == 0 )
  4.         {
  5.             PWM1_Stop();
  6.             flag = 1;
  7.         }
  8.         else
  9.         {
  10.             if ( flag == 1 )
  11.             {
  12.                 flag = 0;
  13.                 PWM1_Start();
  14.             }

  15.             arrf = ( float ) Afresh_PWM1_Init ( fre, K_HZ[0] ) / fre ;//根据频率计算需要装载的值
  16.             arr = ( u16 ) arrf - 1;
  17.         }

  18.         PWMPH = arr / 256;
  19.         PWMPL = arr % 256;//更新PWM的频率

  20.         dutyPrev = 0;
  21.         frePrev = fre;
  22.         k_hz = K_HZ[0];
  23.         change_f = 1;
  24.     }

  25.     if ( dutyPrev ^ duty )
  26.     {
  27.         ccr = ( ( u32 ) arr * ( 100 - duty ) ) / 100 ;
  28.         PWM3H = ( ccr / 256 );
  29.         PWM3L = ( ccr % 256 );
  30.         dutyPrev = duty;
  31.         change_f = 2;
  32.     }

  33.     if( change_f != 0)
  34.     {
  35.         set_LOAD;

  36.         while(1 == LOAD);//等待更新完毕
  37.         change_f = 0;
  38.     }
复制代码


以上是PWM频率及占空比的设置,不知道问题出在哪里~

出5入10汤圆

 楼主| 发表于 2017-11-16 17:35:50 | 显示全部楼层


看这个图会明显,确实是需要等待6S~~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2017-11-16 19:14:24 | 显示全部楼层
使用不当吧,我用PWM来驱动蜂鸣器,带声调的,即时变频率。

出5入10汤圆

 楼主| 发表于 2017-11-16 20:51:17 | 显示全部楼层
mandey 发表于 2017-11-16 19:14
使用不当吧,我用PWM来驱动蜂鸣器,带声调的,即时变频率。

也是新塘N76E003吗?能否看看您怎么做的?

出0入0汤圆

发表于 2017-11-16 21:23:50 | 显示全部楼层
涵潇舒雅 发表于 2017-11-16 20:51
也是新塘N76E003吗?能否看看您怎么做的?

         这里下断点   -〉set_LOAD;

    while(1 == LOAD);//等待更新完毕
     这里下断点   -〉  change_f = 0;

看会不会卡在while里,如果不会,那就是其他问题了,因为规格书上写的就是LOAD=1就是下一个波形就生效

出0入0汤圆

发表于 2017-11-16 21:31:57 | 显示全部楼层
没碰到这种情况~~~~~~~

出0入4汤圆

发表于 2017-11-16 21:39:31 来自手机 | 显示全部楼层
我用过N76E003,PWM还是很正常的

出0入0汤圆

发表于 2017-11-16 22:47:07 | 显示全部楼层
没遇到过。不过想问下楼主知道76E003的外部晶振是怎么接吗,不会是只能接有源吧?

出0入4汤圆

发表于 2017-11-17 08:39:07 来自手机 | 显示全部楼层
Ray______ 发表于 2017-11-16 22:47
没遇到过。不过想问下楼主知道76E003的外部晶振是怎么接吗,不会是只能接有源吧? ...

根据我的理解,是只能接有源晶振

出10入10汤圆

发表于 2017-11-17 09:32:30 | 显示全部楼层
用PWM驱动无源蜂鸣器,很正常:
//PWM驱动无源蜂鸣器:PWM frequency = Fpwm/((PWMPH,PWMPL) + 1) = (16MHz/4)/(0x7A0 + 1) = 2048Hz
#define BUZZER_IO_CONFIG    P04_PushPull_Mode;   \
                                             P04 = 0;   \
                                             PWM_IMDEPENDENT_MODE; \
                                             PWM_CLOCK_DIV_4; \
                                             PWMPH = 0x07; \
                                             PWMPL = 0xA0; \
                                             PWM3H = 0x03; \
                                             PWM3L = 0xD0; \
                                             set_LOAD; \
                                             set_PWMRUN
                           
#define BUZZER_ON               PWM3_P04_OUTPUT_ENABLE           //
#define BUZZER_OFF              P04 = 0;PWM3_P04_OUTPUT_DISABLE

出0入442汤圆

发表于 2017-11-18 10:47:20 来自手机 | 显示全部楼层
FireHe 发表于 2017-11-16 16:43
不可能啊。这个肯定是代码的问题

有些没有细节不够到位的的MCU设计,可能会有一些时钟延时,但任何一家都 ...

我怎么感觉他主频不会太高,尤其是看到32位除法,10hz,感觉他主频很有可能是几khz,这样计算新pwm值就要花6秒。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 09:41

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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