2013년 10월 31일 목요일

2006년 11월 27일 오후 2시 45분

/*HS-311 각도를 찾았다. 90S2313으로(12짜리 크리스탈 기준)으로 서보 모터 제어하는 것인데. 18ms 주기로 20, 57, 92 이다.(0, 90, 180)
아래는 소스.
*/
#include
#include

#include
#include
#include

volatile unsigned int sv1_high ,sv1_low ,sv1_flag ,sv1_range, sec;
volatile unsigned char Bout;

SIGNAL(SIG_OVERFLOW0)        /* signal handler for tcnt0 overflow interrupt */
{

 if(sv1_flag==0)
  {
      if(sv1_low==711) //  <= 18ms
      {
        if(sec>40)
        sec=0;
        else
        sec++;

        sv1_flag=1;
        sv1_low=0;
        Bout=Bout|0x08;
      }
      else
      {
       sv1_low++;
      }
  }
  else
  {
      sv1_high++;
       if(sv1_high>sv1_range)
        {
         sv1_flag=0;
         sv1_high=0;
         Bout=Bout&~0x08;
        }
  }
 outp(0,TCNT0);        /* reset TCNT0 */
}

int main(void)
{
        int i;

    outp(0x80,SREG);
    outp(0xff,DDRB);         /* use all pins on PortB for output */
    outp((1<
    outp(0x00,TCNT0);        /* reset TCNT0 */
    outp(0x01,TCCR0);        /* count with cpu clock */
    sei();                   /* enable interrupts */
    for (;;)
    {
      sec=0;
      sv1_range=20;  //  : 0
      while(sec<39 o:p="">
      {outp(Bout,PORTB);}
      sec=0;
      sv1_range=92;  //  : 180
      while(sec<39 o:p="">
      {outp(Bout,PORTB);}
      sec=0;
      sv1_range=57;  //  : 90
      while(sec<39 o:p="">
      {outp(Bout,PORTB);}

      for(i = 20;i<93 i="" o:p="">
      sec=0;
      sv1_range=i;  //  : ?
      while(sec<39 o:p="">
      {outp(Bout,PORTB);}
      }
    }
}




------------------------------------------------------

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...