Umm...If you intend to shoot immediately after determining Bv by half_shooting, there's no point in releasing shoot_half after autoexposure since it takes time and stresses the mechanics. You really should just override the way you wish and then shoot_full.
AFAIK, half shooting (likely need to be in a mode other than truly manual M mode, but I haven't checked) is the only way to make the cam determine Bv.
In theory you could probably calculate Bv yourself from the live view image or maybe even the live histogram (requires new C code of course), but then you must take care to put the camera in a mode where live view image actually represents the coming image). Basically that means full manual mode, which is not available in all/most cameras.
This would probably result in reliable intervals even under 2 seconds (assuming short enough Tv) and will put less strain on camera mechanics than a normal intervalometer that uses Canon's autoexposure for each and every shot. Anyway, the algorithm to derive bv from the shot histogram (or the raw image itself) is kind of missing.
FWIW, I had trouble overriding Sv during the half shoot on the SD990, no matter which combination of propcases I tried. Some of this may have been confusion due to the bug of not actually going over 800.You also can't (AFAIK) override the ND filter once Bv is available (from script... if you could call the actual PutInNDFilter function you'd be fine).
There really should be some better documentation of what you can use when. Most of the shooting related set_* functions only work before a halfshoot, because they just set the put_off value in shooting.c, and then the override is applied once some time after half press in shoot_seq_task. Some of the propcases can be set any time, while others only take effect if you update them at some point in shoot_half.
I would like to add code get the live histogram data from the last (or current, if you are half shooting) live histogram in script. This should be pretty straightforward, and would give you a lot more to work with than just a single Bv value.
This should be something you can get a reasonable approximation of from the APEX exposure equation and experiment.Bv = Sv - (Tv + Av) for a "correct" exposure. You know all the stuff on the right. So you need some function F(pixel value) that maps the pixel value into stops of under/over exposure. Then F(average pixel value) + Sv - Tv - Av should be your scene Bv. You should be able approximate F, either as a formula or a lookup table, by shooting scenes of a known Bv at various exposures.
When getting Bv in a half press, you need to wait until get_shooting returns true. (actually it updates slightly before, but the only way to detect that is to see if it changed from the previous value)
As for the ND filter, (which I studied for the SD1100 used in the balloon project), I haven't been able at all to set it via script via propcases or functions. I resorted to over-riding it via the CHDK menu, and calculate exposures consequently.
Started by JoJa15 General Help and Assistance on using CHDK stable releases
Started by mattkime Script Writing
Started by pannayar General Help and Assistance on using CHDK stable releases
Started by koshy « 1 2 3 4 5 » General Discussion and Assistance
Started by repurposeresearch General Help and Assistance on using CHDK stable releases