a049f48b0d2d2dc5
获得 0 次赞
帮助过0人
#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 jsi;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 kp; pz(); BJDJ(); dsp(); while(1);}