打印
[AVR单片机]

哪们大哥帮我看一下这个程序哪里有问题

[复制链接]
1431|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) //死循环
   {;}
}
试试吧~

使用特权

评论回复
5
始于16| | 2013-3-3 22:48 | 只看该作者
同意上楼呀~~~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝