搜索
bottom↓
回复: 1

PWM控制直流电机,可总不能改变占空比,请大家帮忙解决!

[复制链接]

出0入0汤圆

发表于 2007-5-8 19:31:44 | 显示全部楼层 |阅读模式
PWM控制直流电机,可通过示波器观察,key2键怎么按 总不能改变占空比,请大家帮忙解决!



我是用M16的AVR,用相频可调模式,(模式8),通过OC1A输出PWM,

程序如下:

#include <iom16v.h>

#include <macros.h>

#define uchar unsigned char

#define uint  unsigned int



#define Key1 (PIND&0x04) //前进

#define Key2 (PIND&0x08) //后退



uint sun, n;



void delay_ms(uint k)

{

uint i,j;

for(i=0;i<k;i++)

  {

    for(j=0;j<1140;j++)

        ;

   }

}

scan_key()         //功能选择键。

{

while(Key1==0)

   {delay_ms(5);

    while(Key1==0)

         {n=1;

                  while(Key1==0);

                  }

     }



while(Key2==0)

   {delay_ms(5);

    while(Key2==0)

         {n=2;

                  while(Key2==0);

                  }

     }

while(Key5==0)

   {delay_ms(5);

    while(Key5==0)

         {n=3;

                  while(Key5==0);

                  }

     }         

return n;



}





void port_init(void)

{

PORTC = 0x00; //m103 output only

DDRC  = 0x00;

PORTD = 0x30;

DDRD  = 0x30;

}



void for_ward(void)  //前进

{    OCR1A=0x005f;

     

}



void speed_add(uint sun )  //加速

{   

     sun=sun+100;

         OCR1A=sun;

       

       

}



void timer1_init(void)

{

TCCR1B = 0x00; //stop

TCNT1H = 0xFF; //setup

TCNT1L = 0x06;

ICR1  = 0x01F4;

TCCR1A = 0xA0;

TCCR1B = 0x12; //start Timer

}

void init_devices(void)

{

CLI(); //disable all interrupts

port_init();

timer1_init();

MCUCR = 0x00;

GICR  = 0x00;

TIMSK = 0x80; //timer interrupt sources

SEI(); //re-enable interrupts

}





void main(void)

{   

init_devices();

while(1)

{

scan_key();

  switch(n)

   {case 1:for_ward();

            break;

        case 2:speed_add(100);               

                break;

        }

}



}

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

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

出0入0汤圆

发表于 2007-5-8 22:19:38 | 显示全部楼层
给你个参考:



L298 电机控制,PWM调速
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-27 02:16

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

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