搜索
bottom↓
回复: 12

M16输出PWM有行刺,求指教!

[复制链接]

出0入8汤圆

发表于 2012-9-5 23:17:08 | 显示全部楼层 |阅读模式
使用的是M16,8MHZ内部RC,与PWM部分相关的代码如下:
#define PWMDDR  DDRD
#define PWMPOR  PORTD
#define PWM1    7
#define PWM2    5
#define PWM3    4

#define PWM1_data OCR2
#define PWM2_data OCR1A
#define PWM3_data OCR1B
#define PWM_MAX   100

volatile unsigned char APWM;
volatile unsigned char BPWM;
volatile unsigned char CPWM;

void pwm_init(void)
{
        APWM=0;BPWM=0;CPWM=0;
        PWMDDR|=1<<PWM1|1<<PWM2|1<<PWM3;
       
        /*初始化PWM*/
        TCCR2|=1<<COM21|1<<WGM21|1<<WGM20|1<<CS22;  // 匹配时清零(COM2A1:COM2A0)快速PWM模式(WGM22:21:20) PWM CLK  /64
        OCR2=0;                                                                                       
        TCNT2=0;  
       
        TCCR1A|=_BV(COM1A1)|_BV(COM1B1)|_BV(WGM10);  //比较匹配时清零(COM1A1:COM1A0   COM1B1:COM1B0)
        TCCR1B|=_BV(CS11)|_BV(CS10)|_BV(WGM12);    //8位快速PWM(WGM10:11:12)   PWM CK/64
        OCR1A=0;
        OCR1B=0;
        /*初始化PWM*/
       
}
void PWM_OUT(unsigned char P1,unsigned char P2,unsigned char P3)
{
        const unsigned char PD[101]=
        {
                 0,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14,          //1
                        15, 16, 17, 18, 19, 20, 21, 22, 23, 24,          //2
                        25, 26, 27, 28, 29, 30, 31, 32, 33, 34,          //3
                        35, 36, 37, 38, 39, 40, 41, 42, 43, 44,          //4
                        45, 46, 47, 48, 49, 50, 51, 52, 53, 54,          //5
                        55, 56, 57, 58, 59, 60, 61, 62, 63, 64,          //6
                        66, 68, 70, 72, 74, 76, 78, 80, 82, 84,          //7
                        88, 92, 96,100,104,108,112,116,120,124,          //8
                   130,136,142,148,154,160,166,172,178,184,          //9
                   191,198,205,212,219,226,233,240,247,255   //10   
        };
        PWM1_data=PD[P1];
        PWM2_data=PD[P2];
        PWM3_data=PD[P3];
}
void int main(void)
{
       pwm_init();
       while(1)
       {
              ……
             ……
              PWM_OUT(APWM,BPWM,CPWM);
      }
}

当 PWM_OUT(0,0,0);时,PWM相关引脚还是有毛刺出现。

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-9-5 23:27:03 | 显示全部楼层
请问你是用什么仪器来测试的?

请看我以前遇到的情况:http://www.amobbs.com/thread-5482177-1-1.html

出0入0汤圆

发表于 2012-9-6 00:23:44 | 显示全部楼层
mark

出0入8汤圆

 楼主| 发表于 2012-9-6 08:13:20 | 显示全部楼层
BBC 发表于 2012-9-5 23:27
请问你是用什么仪器来测试的?

请看我以前遇到的情况:http://www.amobbs.com/thread-5482177-1-1 ...

您好!看了一下您的帖子,最后大概是认为是仪器的问题是吧?我用的是青岛汉泰的虚拟示波器DSO-5200A 200MHz 带宽,50G等效采样。能否作个总结?万分感谢!

出0入0汤圆

发表于 2012-9-6 08:30:46 | 显示全部楼层
好像是占空比没有设置好哦!

出0入8汤圆

 楼主| 发表于 2012-9-6 08:32:43 | 显示全部楼层
xtxtt 发表于 2012-9-6 08:30
好像是占空比没有设置好哦!

求指正!

出0入0汤圆

发表于 2012-9-6 10:08:03 | 显示全部楼层
占空比设成0,还是有1的占空比输出的,这个是正常的。

出0入8汤圆

 楼主| 发表于 2012-9-6 10:10:18 | 显示全部楼层
ahuang227 发表于 2012-9-6 10:08
占空比设成0,还是有1的占空比输出的,这个是正常的。

为什么会这样?

出0入0汤圆

发表于 2012-9-6 10:12:44 | 显示全部楼层
虽然你设置成0 ,但是比较器比较两个值是要时间的,1个clock已经是很短的时间了。怎么也去不掉。

要是真的纠结,那就只能关断PWM输出才行。

出0入8汤圆

 楼主| 发表于 2012-9-6 11:03:37 | 显示全部楼层
ahuang227 发表于 2012-9-6 10:12
虽然你设置成0 ,但是比较器比较两个值是要时间的,1个clock已经是很短的时间了。怎么也去不掉。

要是真的 ...

我用过STC12C5608的PWM输出,PWM=0的时候,啥都没有哦。

出0入0汤圆

发表于 2012-9-6 13:45:07 | 显示全部楼层
qqtfh 发表于 2012-9-6 08:13
您好!看了一下您的帖子,最后大概是认为是仪器的问题是吧?我用的是青岛汉泰的虚拟示波器DSO-5200A 200M ...

目前只发现USB口的逻辑分析仪会出现这种现象,其他仪器应该不会有~~也都不应该有...呵呵

出0入8汤圆

 楼主| 发表于 2012-9-6 13:57:02 | 显示全部楼层
BBC 发表于 2012-9-6 13:45
目前只发现USB口的逻辑分析仪会出现这种现象,其他仪器应该不会有~~也都不应该有...呵呵 ...

应该不是仪器的问题,我用STC12C5608的PWM做过输出,不存在这样的问题。

出0入8汤圆

 楼主| 发表于 2012-9-6 19:48:33 | 显示全部楼层
本帖最后由 qqtfh 于 2012-9-6 19:49 编辑

问题已解决。给OCR2赋值之前判断值大小;如果等于0,就设置TCCR2&=~(1<<COM21|1<<COM20);OCR2当普通IO输出0;非0时,就重新设置TCCR2。感谢CCTV!感谢中央电视台!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-6-11 01:01

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

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