Programowy sofstart silnika krokowego

0

W pierwszej kolejności napiszę część kodu a potem napiszę o co mi chodzi.

var st:string;
a,b:integer;

begin

    for b:=1 to <b>1</b> do  
 
    begin

     for a:=1 to <b>15</b> do

     begin
     instrukcja
     end;

     for a:=1 to <b>15</b> do

     begin
     instrukcja
     end;
     end;

begin

    for b:=1 to <b>2</b> do       
    begin

     for a:=1 to <b>14</b> do

     begin
     instrukcja
     end;

     for a:=1 to <b>14</b> do

     begin
     instrukcja
     end;
     end;

To jest część kodu, przede wszystkim zwracam uwagę na te liczby w pętlach for pogrubione. takich pętli mam 15. W pierwszej pętli for b:=1 to 1 do (ilość kroków silnika) wartość druga rośnie o 1 aż do 15.

W pod pętlach for znowu wartość maleje o jedno z 15 aż do jeden (częstotliwość pracy silnika im większa wartość tym mniejsza prędkość wykonywania kroków)

Chciałbym ten cały ciąg pętli zmniejszyć, bo łącznie jest ich 60, po piętnaście na start prawo lewo silnika i 15 na stop prawo lewo silnika. W tej formie co pokazałem to działa ale każda inna kombinacja skracająca ilość kodu kończy się fiaskiem. Z góry dziękuje.

0

Nie wiem dokładnie jakby to miało wyglądać ale ja bym spróbował opleść to w jakieś powtarzające się procedury i ewentualnie pokombinował z rekurencją. Pytanie tylko czy każda instrukcja w każdej pętli jest inna czy się powtarzają.

0
for i:=0 to 14 do begin
    for b:=1 to 1+i do begin
        for :=1 to 15-i do...
0

instrukcje są identyczne, to po prostu wyjście na mikrokontroler który daje dalej sygnał na cewkę silnika.

1 użytkowników online, w tym zalogowanych: 0, gości: 1