[uBasic] Versuch eines präzisen Intervall-Scripts

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

Versuch eines präzisen Intervall-Scripts

Beitragvon Babul » 18.09.2008, 15:42

Dieses Script unterstuetzt mich bei der Aufnahme von HDR - Zeitraffervideos.
Mir ist es wichtig, zu wissen, wieviel MB noch frei sind, ausserdem kommt zusaetzlich bald noch eine "Rest-Zeit-Anzeige" dazu.
ich brauche noch etwas zeit zum tuefteln, mir fehlt naemlich ein befehl, der die vorraussichtliche dateigroesse ausgibt (RAW 10MB + Jpg 5MB)...
So, jetzt bin ich mal gespannt :)


Code: Alles auswählen
rem Intervallaufnahmen mit praezisem Timer und Restspeicheranzeige...
rem ...ein Machwerk von Babul!

rem ich kommentiere alles am Anfang, im Script braucht das zuviel zeit
rem     Anfangspause - ...bestimmt die Wartezeit, die die Kamera nach dem Ausloesen (starten des Scripts) wartet. Auf einem leichten Stativ brauchts 4 Sekunden, bis die Kamera still steht (Ausloeserknopf)
rem        Intervall - Alle i Sekunden wird Ausgeloest. Bei Serienaufnahmen kann es passieren, dass der Timer ablaeuft, BEVOR die Serie abgeschlossen ist. In diesem Fall wiederholt sich der Countdown und wird somit X-mal so lange.
rem Intervall Status - Alle j Millisekunden wird auf dem Bildschirm (falls angeschaltet) der Countdown und die Anzahl der gestarteten (Serien)-Aufnahmen angezeigt.
rem                    leider ist die praezision des scriptes hier noch von diesem wert abhaengig. aber bei >10 sekunden fallen 0.2 sekunden toleranz (nach oben) nicht ins gewicht.
rem Abbrechen muss man das Script noch selbst. Ich habe es fuer unbestimmt lange Aufnahmen konzipiert!
rem Alle Einstellungen wie Blende, Fokus, Serienaufnahme usw. muessen vorher gemacht werden, ich benutze immer den (M)anual-Modus.

@title Timer 0.01
@param a Anfangspause (s)
@default a 3
@param i Intervall Bilder (s)
@default i 1
@param j Intervall Status (ms)
@default j 200

rem   @param l LEDs
rem   @default l 1

rem alle Angaben im Script werden auf Millisekunden umgerechnet
a=a*1000
i=i*1000

rem s,S Speicher frei (Anfang und laufend)
S=get_free_disk_space

press "shoot_half"

print "Warte",a/1000,"Sekunden..."
sleep a

rem t,T Tick-Count der Kamera (ms)
T=get_tick_count
I=(T+i)
J=(T+j)

:main
   t=get_tick_count
   if t>I then
      press "shoot_full"
      release "shoot_full"
      I=I+i
      B=B+1
   endif
   if t>J then
      x=(t-T)
      s=get_free_disk_space
      cls
      print x/1000"."x%1000" sec, -"(I-t)/1000"."(I-t)%1000
      print "Bild "B", "(S-s)/1024" MB, "s/1024" MB frei"
rem      print "i:",i,"  I:",I
rem      print "T:",T,"  t:",t
      J=J+j
   endif
goto "main"
Benutzeravatar
Babul
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 79
Registriert: 07.08.2008, 18:39
Wohnort: Lindenfels

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 20 Gäste