manche hier finden ja Gefallen daran, ihren Kameras mittels CHDK und eigener Ideen neue Funktionalität beizubringen. Ich würde es sinnvoll und hoffentliczh auch anregend finden, wenn noch nicht ganz ausgegorene Ideen hier auch Platz finden könnten und dann evtl. gemeinsam zu noch besseren Ergebnissen führten.
Ich fange mal mit einem Script an, dasn ich gestern geschrieben habe und das gehtnix bereits kennt - mein Ziel war es, ein Intervallscript zu schrteiben, bei dem ich - wenn ich mal wissen möchte, wie lange es denn noch läuft, auf den USB-Taster drücken kann, um dasd Display für ein paar Sekunden einzuschalten.
Um das Skript diskutieren zu können, klemm ich es unten als Code-Schnipsel an und zusätzlich auch als Download.
Wer will, kann es testen und wer weitere Ideen dazu hat, nur her damit.
Grüße
c
- Code: Alles auswählen
rem get_day_seconds als Intervalltimer
@title Intervalltimer-get_ds
@param a Anzahl Bilder (Faktor 100)
@default a 1
@param b Anzahl Bilder (Faktor 10)
@default b 1
@param c Anzahl Bilder (Faktor 1)
@default c 0
@param d Intervall (min)
@default d 0
@param e Intervall (sec)
@default e 5
@param l Start um x Uhr
@default l 12
@param m Start um x Minuten
@default m 30
@param n Start-Timer 0=aus 1=ein
@default n 1
rem to avoid wrong settings they are adjusted here
if a<=0 then a=0
if b<=0 then b=0
if c<=0 then c=0
if d<=0 then d=0
if e<=0 then e=0
if l<=0 then l=0
if l>=23 then l=23
if m<=0 then m=0
if m>=59 then m=59
if n>1 then n=1
if n<0 then n=0
rem how many photos?
a=a*100+b*10+c
print "Insgesamt "a" Bilder"
rem length of minimum intervall
b=d*60+e
if b<=4 then b=4
print "echte Intervallänge "b" Sek"
d=0
e=0
rem if timer is used print when shooting starts
if n=1 then
c=l*3600+m*60
print "Start "l"h, "m"min"
endif
rem get display status
X=get_display_mode
rem X=1
U=X
d=1
print "dispmode "U
rem wait a while
sleep 4000
cls
w=get_day_seconds
rem if timer is used move to timer subroutine, otherwise go to intervall
if n=1 then goto "vorbereitung" else goto "inter"
rem preparations for timer use
:vorbereitung
t=get_day_seconds
if (c-t)<=0 then
c=c+86400
endif
z=c-t
print "Start: "z/3600"h, "(z%3600)/60"min, "(z%3600)%60"sec"
rem and here the tiomer loop starts
:timer
if n=1 then
t=get_day_seconds
u=get_usb_power
z=c-t
print "Start: "z/3600"h "(z%3600)/60"min "(z%3600)%60"sec"
if z<=0 then goto "inter"
if d=1 and (z<10 or w<=(t-5)) then gosub "dispaus"
u=get_usb_power
if u>0 then
if d=0 then
w=get_day_seconds
u=0
gosub "dispein"
endif
endif
sleep 950
goto "timer"
endif
rem intervall shooting in this loop
:inter
u=get_usb_power
if u>0 then
gosub "dispein"
d=1
u=0
T=get_day_seconds
endif
if d=1 and t>(T+5) then
gosub "dispaus"
d=0
endif
t=get_day_seconds
if v<=t then
e=e+1
print e" von "a
shoot
v=t+b
endif
if e>=a then goto "ende"
goto "inter"
rem end routine
:ende
for i=1 to 3
playsound 3
sleep 2000
next i
rem display wieder einschalten
gosub "dispein"
rem Kamera ausschalten, zweimal, weil mit
rem einmal shut_down funktioniert das nicht
shut_down
sleep 2000
shut_down
end
rem switch off display
:dispaus
do
click "display"
U=get_display_mode
until (U=2 or U=3)
d=0
return
rem switch on display
:dispein
do
click "display"
U=get_display_mode
until (U=X)
d=1
return