搜索
bottom↓
回复: 5

关于PWM与电调的问题

[复制链接]

出0入0汤圆

发表于 2011-5-22 17:05:11 | 显示全部楼层 |阅读模式
各位大侠,我写了一个用avr16单片机产生PWM波的程序,各位高人给看一下这个能启动我们刚到手的中特威电调吗?思路是用外部中断来改变占空比。
/********************************************/  
/* 工作频率:内部8M                   *               
* 输   出:PD4输出PWMB,PD5输出PWMA *  
*         产生的PWMA,PWMB频率为8M/(1250*2*64)约50HZ,工作区间为10%占空比到22%占空比,
  *步进为1.6%占空比,起始占空比为0.5%,起始到工作步进占空比为0.8%   
********************************************/  
#include <avr/io.h>
#include <avr/io.h>
#include <avr/signal.h>
#include <avr/interrupt.h>
#include "avr/delay.h"
int m;
unsigned int a=6,b=6;
void port_init(void)  
{  
   cli();
   GIFR |=(1<<  6)|(1<<7);
   MCUCR |=0x0a;
   GICR |=(1<<6)|(1<<7);
   PORTA = 0xFF;  
   DDRA = 0x00;  
   PORTB = 0xFF;  
   DDRB = 0xFF;  
   PORTC = 0x00;  
   DDRC = 0x00;  
   PORTD = 0x0c;  
   DDRD = 0x30;
   sei();
}  
SIGNAL(SIG_INTERRUPT0)//增加占空比

{

    cli();
        if(a>=125)
     {
           m=20;a=m+a;b=b+m;
           if(a>=275)
           {
            a=275;
            b=275;
           }
         }
        else
        {
         m=10;a=a+m;b=b+m;
        }
        OCR1A=a;
        OCR1B=b;
    GIFR |=(1<<6)|(1<<7);
    sei();

}
SIGNAL(SIG_INTERRUPT1)//减少占空比

{

    cli();
        if(a<125)
        {
         ;
        }
   else
   {
         m=20;a=a-m;b=b-m;
   }
   if(a<=125)
   {
        a=125;
        b=125;
   }
  }
  OCR1A=a;
  OCR1B=b;
  GIFR |=(1<<6)|(1<<7);
  sei();

}  
void timer1_init(void)  
{  
  TCCR1A = 0xa2;         //两路PWM,匹配清零  
  TCCR1B = 0x14;         //相位修正PWM模式,预分频 64
  ICR1   = 0x04e2;     //计数上限为1250,11位PWM
}
void main(void)  
{  
  port_init();  
  timer1_init();
  OCR1A=a;           //匹配初值  
  OCR1B=b;   
  while(1)  
  {
    ;  
  }  
}

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

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2011-5-23 17:45:19 | 显示全部楼层
试验才知真相,只看程序是不行的。

前几天我也想这样做,用51,也用M16。

用51的时候,还让电机叫2声,换成m16后,叫都懒的叫了。

不过用PWM调LED光挺管事,调电调麻烦了,也没有成功,麻烦看这个贴子,中间部分的。从13楼开始。

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4706890&bbs_page_no=1&search_mode=4&search_text=kerrwang1982&bbs_id=9999

出0入0汤圆

 楼主| 发表于 2011-5-24 20:20:58 | 显示全部楼层
回复【1楼】kerrwang1982
-----------------------------------------------------------------------

谢大侠指点我试验过了,电调也是一点反应也没有,我用示波器看过它的PWM波,发现与想要的结果差之甚远也不知是什么原因。

出0入0汤圆

 楼主| 发表于 2011-5-24 20:21:30 | 显示全部楼层
回复【1楼】kerrwang1982
-----------------------------------------------------------------------

谢大侠指点我试验过了,电调也是一点反应也没有,我用示波器看过它的PWM波,发现与想要的结果差之甚远也不知是什么原因。

出0入0汤圆

 楼主| 发表于 2011-5-24 21:31:52 | 显示全部楼层
回复【1楼】kerrwang1982
-----------------------------------------------------------------------

多谢大侠指点我已经明白是什么问题了?

出0入0汤圆

发表于 2013-9-8 16:32:52 | 显示全部楼层
怎么能用程序通过电调驱动无刷电机呢?我刚刚到手了一套无法让它转起来,迷茫中。。。求大侠指点一二
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-26 13:11

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

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