Μπορείς να βάλεις σχόλια στον κώδικα σου για να γίνει πιο γρήγορα κατανοητός?
edit: τώρα κατάλαβα(είναι και αργά), θες το περιεχόμενο της case 2 να το κάνεις υπορουτίνα και να την καλείς.
Εστω ότι o κώδικας σου είναι σωστός(δεν μπορώ να το ξέρω εγώ). Το όνομα της υπορουτίνας θα είναι eligmoi_parkarismatos η υπορουτίνα σου θα είναι:
Κώδικας:
void eligmoi_parkarismatos(void)
{
Mprosta=0;
Pisw=0;
PWM1_Set_Duty(Mprosta);
PWM2_Set_Duty(Pisw);
Strofes=0;
delay_ms(1000);
while(Strofes<4)
{
Laser=ADC_Read(3);
portd.Aristera=0;
portd.Dexia=0;
Pisw=120;
Mprosta=0;
PWM1_Set_Duty(Mprosta);
PWM2_Set_Duty(Pisw);
if (Laser>400)
{
portd.f5=1;
Strofes=Strofes+1;
delay_ms(100);
}
else
portd.f5=0;
}
Strofes=0;
while(Strofes<5)
{
Laser=ADC_Read(3);
portd.Aristera=0;
portd.Dexia=1;
Pisw=0;
Mprosta=120;
PWM1_Set_Duty(Mprosta);
PWM2_Set_Duty(Pisw);
if (Laser>400)
{
portd.f5=1;
Strofes=Strofes+1;
delay_ms(100);
}
else
portd.f5=0;
}
Strofes=0;
while(Strofes<5)
{
Laser=ADC_Read(3);
portd.Aristera=1;
portd.Dexia=0;
Pisw=120;
Mprosta=0;
PWM1_Set_Duty(Mprosta);
PWM2_Set_Duty(Pisw);
if (Laser>400)
{
portd.f5=1;
Strofes=Strofes+1;
delay_ms(100);
}
else
portd.f5=0;
}
Strofes=0;
while(Strofes<5)
{
Laser=ADC_Read(3);
portd.Aristera=0;
portd.Dexia=1;
Pisw=120;
Mprosta=0;
PWM1_Set_Duty(Mprosta);
PWM2_Set_Duty(Pisw);
if (Laser>400)
{
portd.f5=1;
Strofes=Strofes+1;
delay_ms(100);
}
else
portd.f5=0;
}
Strofes=0;
while(Strofes<3)
{
Laser=ADC_Read(3);
portd.Aristera=1;
portd.Dexia=0;
Pisw=0;
Mprosta=120;
PWM1_Set_Duty(Mprosta);
PWM2_Set_Duty(Pisw);
if (Laser>400)
{
portd.f5=1;
Strofes=Strofes+1;
delay_ms(100);
}
else
portd.f5=0;
}
portd.Aristera=0;
portd.Dexia=0;
Mprosta=0;
Pisw=0;
PWM1_Set_Duty(Mprosta);
PWM2_Set_Duty(Pisw);
Strofes=0;
delay_ms(2000);
Yperithres=400;
m=10;
}
και πλέον η case 2 θα γίνει:
Κώδικας:
case 2 : eligmoi_parkarismatos(); break;