سلام
من می خوام تعداد پالس های انکودر رو بشمارم و بعد از محاسبه مسافت معین میکرو یه دستور رو اجرا کنه . خروجی انکودر رو به پایه T0 دادم . برنامم هم اینطوریه
while (1)
{
PORTC.2=0 ;
PORTC.1=1;
TCCR0=0x06; // Start Timer T0 pin Falling Edge
#asm("sei"
// Global enable interrupts
delay_ms(1000);
COUNT = timer0_ov * 256 + TCNT0;
for (j=0;j<=10;j++)
{ while(COUNT==s){
#asm("cli"
; // Global disable interrupts
PORTC.1=1;
PORTC.2=1;
printf("run the first step"
;
TCCR0=0x00; //Stopt Timer0
timer0_ov=0; //Prepare for next count
TCNT0=0; //Clear Timer0
}
}
};
}
ولی موتور بدون هیچ توقفی می چرخه!
لطفا کمک کنید ، مشکل سخت افراریه یا نرم افزاری؟ :cry:
من می خوام تعداد پالس های انکودر رو بشمارم و بعد از محاسبه مسافت معین میکرو یه دستور رو اجرا کنه . خروجی انکودر رو به پایه T0 دادم . برنامم هم اینطوریه
while (1)
{
PORTC.2=0 ;
PORTC.1=1;
TCCR0=0x06; // Start Timer T0 pin Falling Edge
#asm("sei"

delay_ms(1000);
COUNT = timer0_ov * 256 + TCNT0;
for (j=0;j<=10;j++)
{ while(COUNT==s){
#asm("cli"

PORTC.1=1;
PORTC.2=1;
printf("run the first step"

TCCR0=0x00; //Stopt Timer0
timer0_ov=0; //Prepare for next count
TCNT0=0; //Clear Timer0
}
}
};
}
ولی موتور بدون هیچ توقفی می چرخه!
لطفا کمک کنید ، مشکل سخت افراریه یا نرم افزاری؟ :cry:
دیدگاه