Same lines repeated in romlog until out of memory? ASSERT!! CtrlSrv.c Line 731
Task name: PhySw
...
00017740: UI:Button:0x00001135:
00017740: UI:LogicalEvent:0x00001134:adr:0x1,Para:1
00017740: UI:Button:0x00001134:
00017740: UI:LogicalEvent:0x000008af:adr:0x1,Para:1
00017740: UI:Button:0x000008AF:RotateEDialRight
00017740: UI:LogicalEvent:0x00001135:adr:0x1,Para:1
00017740: UI:Button:0x00001135:
...
local start = max-hlw -- hlw= 1..10
if total > 0 then -- overexposed
i = 0
repeat
wheel_right() -- move 1 stop, but note camera must be set to 1/3 stops
wheel_right()
wheel_right()
histo,total=get_live_histo()
total = 0
for i = start,(max-1),1 do total = total + histo[i] end
until total <= 0
Correction is -3 EV..+3EV, so might still be some counts in the high bins, so total always > 0.
@Caefix As
@srsa_4c pointed out to me, I needed to add in a few sleep calls.
I also refactored the ETTR function, including adding in a menu/user variable (limit) to carry out the test, ie not necessarily zero.
Here’s the latest version. I’ve tested it on my M3 and M10 and it works OK, ie doesn’t produce a ‘perfect’ ETTR exposure, but it’s close enough and relatively fast.
function set_ETTR()
do
local histo={}
local total = 0
histo,total=get_live_histo()
total = 0
local max = #histo
local start = max-hlw
for i = start,(max-1),1 do total = total + histo[i] end -- get the total count in the requested quartiles
local sl = 50
if total <= 0 then -- underexposed
repeat
wheel_left()
sleep(sl)
histo,total=get_live_histo()
total = 0
for i = start,(max-1),1 do total = total + histo[i] end
until total > limit
end
if total > limit then
repeat
wheel_right()
sleep(sl)
histo,total=get_live_histo()
total = 0
for i = start,(max-1),1 do total = total + histo[i] end
until total <= limit
end
press("shoot_half")
repeat sleep(10) until get_shooting()
s = get_tv96()
set_user_tv96(s)
release("shoot_half")
repeat sleep(10) until (not get_shooting())
return
end
end