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!