Variabel tid?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Mignon
EF Sponsor
Inlägg: 174
Blev medlem: 6 mars 2006, 18:37:46
Ort: Göteborg
Kontakt:

Variabel tid?

Inlägg 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?
Användarvisningsbild
lgrfbs
Inlägg: 7367
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg 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.
Senast redigerad av lgrfbs 29 juli 2006, 17:46:51, redigerad totalt 1 gång.
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg 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.
Användarvisningsbild
lgrfbs
Inlägg: 7367
Blev medlem: 28 januari 2005, 15:48:53
Ort: X-län
Kontakt:

Inlägg 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?
Användarvisningsbild
$tiff
Inlägg: 4941
Blev medlem: 31 maj 2003, 19:47:52
Ort: Göteborg
Kontakt:

Inlägg 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.
Användarvisningsbild
Mignon
EF Sponsor
Inlägg: 174
Blev medlem: 6 mars 2006, 18:37:46
Ort: Göteborg
Kontakt:

Inlägg av Mignon »

hehe, tack vare $tiff så bytte jag namn på variabeln från pause till x så funkade det dirket.. :) tack tack!
Skriv svar