本帖最后由 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
|