Sida 1 av 1
Delay_ms i MikroC
Postat: 1 december 2006, 15:57:07
av newbadboy
Hej.
Försöker göra kod till ett pulståg, använder mig av Delay_ms() men jag upptäckte nyss att den endast klarar heltal. Jag behöver 1,5ms. Hur ska man lösa detta? Har kollat runt i hjälpen för MikroC men än så länge inte hittat ngt användbart.
Tack.
Postat: 1 december 2006, 16:20:38
av bearing
Jag föreslår att du använder en timer som skapar ett interrupt när den slår runt. I det interruptet ger du timern ett värde som gör att interruptet sker 1,5 ms senare.
Postat: 1 december 2006, 16:53:38
av sodjan
Interrupt är en lösning, som bearing nämnde.
PWM modulen (om din processor har det) kan vara en annan (beror på lite...).
Sen undrar jag om det inte finns funktioner liknande delay_ms() fast för
kortare delay...
Postat: 1 december 2006, 18:29:57
av lgrfbs
I mikroPascal 6.0.0.0 finns dessa:
Delay_us
Creates a software delay in duration of time_in_us microseconds (a
constant). Range of applicable constants depends on the oscillator
frequency.
This is an inline routine; code is generated in the place of the call, so the
call doesnt count against the nested call limit.
Vdelay_ms
Creates a software delay in duration of time_in_ms milliseconds (a
variable). Generated delay is not as precise as the delay created by
Delay_ms.
Delay_Cyc
Creates a delay based on MCU clock. Delay lasts for 10 times the input
parameter in MCU cycles.
Nu var det ju till mikroC du behövde hjälp, men editorn är samma i
mikroBasic/C/Pascal så klicka på "Qhelp" i mikroC IDE och sök på "delay"
så får du fin hjälp där

Postat: 1 december 2006, 18:35:20
av TomasL
Om du kan använda inline asm, så kan du ju skapa en enkel fördröjning i asm.
Det gör jag när jag behöver kortare fördröjningar.
Alternativt göra en "dummy" kod som tar 0,5 ms.
Postat: 1 december 2006, 18:53:08
av newbadboy
visst fanken finns det en delay_us().... så lätt var det