#include <avr/io.h> 12m晶振 想0度和45度之间转sg90舵机
#include <util/delay.h>
#include <avr/interrupt.h>
#define BIT(x) (1<<x);
unsigned typedef char u8;
u8 js,i;
void pz()//配置步进电机IO口输出
{ DDRB|=BIT(3);
DDRB|=BIT(2);
DDRB|=BIT(1);
}
void BJDJ()//配置步进电机IO口
{ PORTB|=BIT(2);
PORTB&=~BIT(1);
}
void dsp()//配置定时器
{ TCCR1B=0x04;
TIMSK=0x04;
sei();
TCNT1H=0xff;
TCNT1L=0xfa;
}
ISR (TIMER1_OVF_vect)//定时器1
{ TCNT1H=0xff;//设置初值 定时时间0.1毫秒
TCNT1L=0xfa;
js++;
if(js<=200)
{ if(js<=5)
PORTB|=BIT(3);
if(js>5);
PORTB&=~BIT(3);
}
else
{ i++;
if(i<=200)
{
if(i<=10)
PORTB|=BIT(3);
if(js>10);
PORTB&=~BIT(3);
}
else
{ i=0;
js=0;
}
}
}
int main(void)
{ unsigned char k,p;
pz();
BJDJ();
dsp();
while(1);
}
|