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