السلام عليك
أنا بصدد انهاء أطروحة التخرج و أريد منك المساعدة فيما يخص البرمجة كتبت البرنامج التالي بالميكروسي و هو يعمل مع المحرك الأول لكن عند اضافة حلقة المحرك الثاني التي اسمها في البرنامج step1 فلا يريد التوقف(المحرك2) مع العلم أنه يجب عليه التوقف بعد تساوي: mesur2=consigne2
البرنامج هو:
unsigned float pot;
unsigned float pot2;
char consigne=2;
char consigne2=2;
int alpha;
char err1;
char err2;
#define M1_actif {PORTD.F1=255;PORTD.F0=0;PORTC.F3=255;}
#define M2_actif {PORTD.F1=0;PORTD.F0=0;PORTC.F3=255;}
void main()
{
ADCON1=0x80;
TRISA=0xFF;
TRISB=0x00;
TRISC=0x00;
TRISD=0x00;
while(1)
{
pot=Adc_Read(0);
pwm_init(5000);
pwm_start();
if (pot==consigne)
{
goto step1;
}
else if (pot<consigne)
{
M1_actif;
pwm_change_duty(128);
PORTB=0b00000010;
err1=pot-consigne;
}
else
{
pwm_change_duty(128);
err1=consigne-pot;
M1_actif;
PORTB=0b00000001;
}
step1:
pot2=Adc_Read(1);
PORTB=0b00000100;
err2=0;
M2_actif;
pwm_change_duty(128);
if (pot2==consigne2)
{
PORTB=0b00000000;
}}}