[Atmel] 用AtmelStudio6.2跑mega16例程(22) 直流电机转速控制

[复制链接]
1511|2
 楼主| ddllxxrr 发表于 2014-9-26 22:11 | 显示全部楼层 |阅读模式
这个程序是控制PWM的占空比来达到控制直流电机的目地。

以下是Proteus仿真结果


以下是程序

  1. /*
  2. * GccApplication4.c
  3. *
  4. * Created: 2014-9-26 21:59:42
  5. *  Author: Administrator
  6. */


  7. #include <avr/io.h>
  8. #include <avr/interrupt.h>
  9. #define uchar unsigned char
  10. #define uint unsigned int
  11. #define  k0   //PORTD.2   //与按钮连接
  12. #define  k1   //PORTD.3
  13. uchar a;
  14. //interrupt [EXT_INT0] void int0_isr(void)    //INT0中断函数
  15. ISR(INT0_vect)
  16. {
  17.         a=a+20;
  18.         if(a>=255)
  19.         {a=254;}
  20. }
  21. //interrupt[EXT_INT1] void int1_isr(void)         //INT1减速控制
  22. ISR(INT1_vect)
  23. {
  24.         a=a-20;
  25.         if(a<=0)
  26.         {
  27.                 a=0;
  28.         }
  29. }
  30. int main(void)
  31. {
  32.         DDRC=0xFF;
  33.         PORTC=0xFF;
  34.         DDRD=0xF3;
  35.         PORTD=0xFF;
  36.         TCCR1A=0x81;
  37.         TCCR1B=0x0A;
  38.         MCUCR=0x0A;                  //定义INT0和INT1为下降沿时产生中断
  39.         GICR=0xC0;                  //允许INT0和INT1产生中断
  40.         //#asm("sei")
  41.         sei();
  42.         while(1)
  43.         {
  44.                 OCR1A=a;
  45.         }
  46. }


本帖子中包含更多资源

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

×
huqiangneng 发表于 2015-6-6 13:57 | 显示全部楼层
没看懂
 楼主| ddllxxrr 发表于 2015-6-6 17:34 | 显示全部楼层

不要紧,慢慢看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2404

主题

7001

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部