Sida 1 av 1

Variabel tid?

Postat: 28 juli 2006, 20:05:33
av Mignon
Vad är det jag hör om att man inte kan ha en variabel pause? Typ i mitt
blinka-lysdiod-test så skulle jag vilja att pausen minskade men en ms varje loop.. Går inte det?

Postat: 28 juli 2006, 20:14:15
av lgrfbs

Kod: Markera allt

For A:=1 to 1000 do
Begin
Ms_delay(1);
 If Status='Bryt' then
 Begin
  {Gör något}
  A:=A+1;
 End;
End;
Typ i stora drag.

Edit:
En lite bättre variant:

Kod: Markera allt

Status:='Run';
RunTime:=1000;  //Variabel tid att vänta.
repeat               
 begin

  Delay_us(1);
  De:=De+1;
  If De>=RunTime then 
  Begin
   Status:='Stop';
  End;

  If Status='Hmmm' then
  Begin
   {Gör något annat}
   De:=De-1;
  End;

  If De<1 then 
  Begin
    De:=0;
  End;

 end;
until Status = 'Stop';
Variabel: Status på verkas av huvud programet när programet kan
ge 'Hmmm' eller 'Run' & vid uppnådd tid 'Stop'.

Edit: Byte ut 'Pause' till 'Hmmm' efter att $tiff på pekade detta.
Tack.

Postat: 29 juli 2006, 17:41:45
av $tiff
Det går inte att ha en variabel som heter "pause" om din kompilator har detta namn reserverat, vilket är vanligt förekommande. Däremot om du väljer ett annat namn på din variabel så ska det inte vara något problem med att ha en loop med variabel paustid.

Postat: 29 juli 2006, 17:49:54
av lgrfbs
Vi vet ju inte vilken kompilator han (Mignon) tänker använda, men jag ändrade i kodexemplet ändå.

Så, hur går det?

Postat: 29 juli 2006, 18:32:58
av $tiff
Mitt ninlägg var egentligen riktat åt Mignon, men det träffade visst lgrfbs' kod kod också.

Generellt ska man vara försiktigt med alldeles för logiska och enkla namn på sina varibler, eftersom de med största sannolikhet då är reserverade. Man bör alltid upp sådant innan man kör igång med något nytt språk, det är inte säkert på att kompilatorn är trevlig nog att tala om för en precis vad felet beror i.

Postat: 31 juli 2006, 12:25:01
av Mignon
hehe, tack vare $tiff så bytte jag namn på variabeln från pause till x så funkade det dirket.. :) tack tack!