打印
[技术问答]

N76E003 以3秒为周期,但是3秒中输出不同PWM值

[复制链接]
2746|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wgc2015|  楼主 | 2016-12-30 16:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
N76E003 以3秒为周期,但是3秒中输出不同PWM值

求程序 分享
沙发
598330983| | 2016-12-30 16:49 | 只看该作者
定时器中断里修改啊。

使用特权

评论回复
板凳
wgc2015|  楼主 | 2016-12-30 17:00 | 只看该作者
case(1):
                                       
                                clr_GPIO1;
                                set_SFRPAGE;                                               
                                PWM5H = 0x1;                                               
                                PWM5L = 0x28;//0x5CF----20%/60ms
                                clr_SFRPAGE;                               
                            set_LOAD;
                    set_PWMRUN;
                         break;

                         case(2):       
                                set_GPIO1;
                                set_SFRPAGE;                                               
                                PWM5H = 0xB;                                               
                                PWM5L = 0x9E;//0xB9E----40%/60ms
                                clr_SFRPAGE;                               
                            set_LOAD;
                    set_PWMRUN;
                         break;

                        case(3):       
                                clr_GPIO1;
                                set_SFRPAGE;                                               
                                PWM5H = 0x11;                                               
                                PWM5L = 0x6D;//0x116D----60%/60ms
                                clr_SFRPAGE;                               
                            set_LOAD;
                    set_PWMRUN;
                          break;

使用特权

评论回复
地板
wgc2015|  楼主 | 2016-12-30 17:01 | 只看该作者
不知道怎么修改好

使用特权

评论回复
5
zhuotuzi| | 2016-12-30 17:02 | 只看该作者
你定一个定时器用来计数,什么时候改变这个PWM。

使用特权

评论回复
6
wgc2015|  楼主 | 2016-12-30 17:07 | 只看该作者
但是有好几种模式,切换一种有一种占空比,另外一种又另外一种占空比

使用特权

评论回复
7
爱潜泳的鱼| | 2016-12-31 10:41 | 只看该作者
不断的修改PWM预加载寄存器中的值就OK了。

使用特权

评论回复
8
wgc2015|  楼主 | 2017-1-3 17:27 | 只看该作者
case(4):  
                                set_SFRPAGE;
                                if (key_time <= 20)                                               
                                {
                                       
                                        PWM5H = 0x17;                                               
                                        PWM5L = 0x3C;//0x173C----80%/60ms
                                        clr_SFRPAGE;                               
                                    set_LOAD;
                            set_PWMRUN;
                                        break;
                                }
                               
                                else if ((key_time >20)&&(key_time <= 39))
                                {
                                        clr_PWMRUN;       
                                        clr_LOAD;
                                        clr_PWMF;
                            clr_CLRPWM;
                                        break;
                                }       
                                else if(key_time >=40)
                                  {
                                          key_time=0;
                                        break;
                                  }
                         break;
                       
                        case(5):       
                                set_SFRPAGE;
                                if (key_time <= 20)                                               
                                {
                                       
                                        PWM5H = 0x1C;                                               
                                        PWM5L = 0x70;//0x1C70----100%/60ms
                                        clr_SFRPAGE;                               
                                    set_LOAD;
                            set_PWMRUN;
                                        break;
                                }
                               
                                else if ((key_time >20)&&(key_time <= 39))
                                {
                                        clr_PWMRUN;       
                                        clr_LOAD;
                                        clr_PWMF;
                            clr_CLRPWM;
                                        break;
                                }       
                                else if(key_time >=40)
                                  {
                                          key_time=0;
                                        break;
                                  }
                         break;
                }

使用特权

评论回复
9
wgc2015|  楼主 | 2017-1-3 17:29 | 只看该作者
发现一个问题,每隔几秒会出现一次256ms的高电平,不知道是什么原因?求大师帮我分析一下

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

16

帖子

0

粉丝