头像-363874

a049f48b0d2d2dc5

个人成就

获得 0 次赞

帮助过0人

avr atmega16单片机舵机问题 不按指示走

#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);}