打印
[AVR单片机]

avrpwm的问题

[复制链接]
1541|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
472666GAQ|  楼主 | 2010-6-19 17:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
pwm输出的时候  更改OCn寄存器的值 然后通过OCn的寄存器里面的值输出  但是OCn的寄存器的初始值是多少呢    然后官方给了一个初始OCn寄存器的办法

OC2 的设置应该在设置数据方向寄存器之前完成。最简单的设置OC2 的方法是在普通模
式下利用强制输出比较FOC2。即使在改变波形发生模式时OC2 寄存器也会一直保持它
的数值。


可不可以直接给OCn赋值呢就像  初始换PORT里面的数据那样



双缓冲可以将更新OCR2 寄存器与top 或bottom 时刻同步起来,
从而防止产生不对称的PWM 脉冲,消除毛 //这句话一直没理解 什么意思   比单缓冲的优点是什么

相关帖子

沙发
拆墙采杏| | 2010-6-23 22:05 | 只看该作者
专柜价格不知道,去百度应该找得到,新手不建议买EF,除非你要从专柜买,现在EF的仿品遍地都是。

使用特权

评论回复
板凳
xf1234| | 2010-6-27 08:16 | 只看该作者
//************************pwm.c*******************************//
#include"head.h"
void PWM(unsigned pps)
{
     counter=0;
         vn=0;
         topfix=1000000/pps;
         n1=((10000-topfix)/STEP+2)*(2*N);
         if(n<2*n1){display_str(0,0,"error!  " );return;}
         n2=n-n1;
         TOP=10000;
         PWMCONREG1=0x41;
         PWM_IO;
         SEI;
         OPEN_CMP1A;
         PWMCONREG2=0x11;
         while(1)
         {
            if(((key_value=key())=='4')&&!key){PWMCOREG2=0;CLI;return;}
                else if(counter<n1){display_str()0,0,"move up....!");}
                else if(counter==n){display_str()0,0,"stop..!     ");}
                else if(counter<>n2){display_str()0,0,"move down.!");}
                else diaplay_str(0,0,"isopluse...!");
                adcdisplay();
         }
}
//************************pwm.c(end)*******************************//

使用特权

评论回复
地板
xiaomifan| | 2010-6-27 20:44 | 只看该作者
“消除毛”什么东西?从来没听过

使用特权

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

本版积分规则

102

主题

285

帖子

2

粉丝