servo motor sorunu

Başlatan TÜRK KARTALI, 02 Nisan 2013, 17:42:31

TÜRK KARTALI

merhaba arkadaşlar tasarım dersi için servo motor kontrolü yapıyorum.micro c'de yazdığım programla motoru +90 ve -90 da döndürüyorum.Simülasyonda çalışan devre bord da çalışmıyor.Yardımcı olursanız sevininirim.Bide devrede hi-tec 311 nolu standart servo kullanılmıştır diyo,ben towardpro mg996r kullanıyorum sorun olurmu?
       
kodlar
#define servo PORTB
#define servo_tris    TRISB

#define ctrl     F0

#define ileri    F6

#define geri     F7

#define t19ms    F0

// Değişken tanımlamaları.

   char TimerCtrl, TimerCount;
   int pos, tmp;
// ilk programın yapıldıgı alt program

void init()
{
   option_reg=0x00;
   servo=0;
   servo_tris.ctrl=0;
   servo_tris.ileri=1;
   servo_tris.geri=1;
   TRISC=0;
   pos=1;
   tmp=pos;
   TimerCount=0;
   TimerCtrl.t19ms=0;
   TMR0=6;
   INTCON.T0IE=1;
   INTCON.GIE=1;

}
   void interrupt()
   {
       if(INTCON.T0IF)
       {
          TMR0=6;
          TimerCount++;
          if(TimerCount==38)
          {
             TimerCtrl.t19ms=1;
             TimerCount=0;
          }
          INTCON.T0IF=0;
       }
   }
   void main()                    //Ana program.
   {
   init();
   while(1)
   {  servo.ctrl=1;

        delay_us(420);
        while(--tmp);
        servo.ctrl=0;
        if(!servo.ileri) if(pos<196)pos++;
        if(!servo.geri)  if(pos>1)pos--;
        tmp=pos;
        TimerCtrl.t19ms=0;
        while(!TimerCtrl.t19ms);
          }
   }