[AVR单片机] 哪们大哥帮我看一下这个程序哪里有问题

[复制链接]
1814|4
 楼主| yezef 发表于 2013-2-27 15:14 | 显示全部楼层 |阅读模式
本帖最后由 yezef 于 2013-2-27 15:18 编辑

#include <ioavr.h>
void init (void)
{
  DDRG=0x1f;
  OCR1AH =0x06;
  OCR1AL =0x00;//定时100ms
  TCCR1A=0x00;
  TCCR1B = 0x09;//CTC 模式4,无预分频
  TCCR1C=0x00;//位7---FOC1A=0
  TIMSK=0x10;//位4----OCR1A,定时器1输出匹配A比较中断使能
  SREG_Bit7=1;//全局中断使能
}
volatile unsigned char sm_pul=0;
#pragma vector=TIMER1_COMPA_vect
__interrupt void sm1(void)
{
  if(sm_pul==0)
  {
    sm_pul=1;
    PORTD_Bit2=1;//脉冲输出
  }
  else if(sm_pul==1)
  {
    sm_pul=0;
    PORTD_Bit2=0;
  }
}
void main(void)
{
  init();
}

我的意思是定时器1匹配中断控制脉冲信号,程序编译时不报错,但程序烧录进去电机就是不转,硬件和电路没问题,用别的程序测试过,谁帮我修改一下啊,只要让电机能转就行。
单片机 mega128  编译平台IAR

john_lee 发表于 2013-2-27 22:42 | 显示全部楼层
检查一下熔丝设置
dqyubsh 发表于 2013-2-28 00:55 | 显示全部楼层
大哥,你不写死循环啊……
xinhoujue 发表于 2013-3-1 19:24 | 显示全部楼层
添加:
void main(void)
{
  init();
while(1) //死循环
   {;}
}
试试吧~
始于16 发表于 2013-3-3 22:48 | 显示全部楼层
同意上楼呀~~~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

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