где-то ненулевое значение в поле timer заносится? из варианта с
continue получается, что таки заносится (иначе был бы переход на
проверку условия в for). не догоняю по этой логике нафига поле
num... но если по-шагово видно, то стОит после точки останова ещё
шажок сделать. можно и барьер __DSB() перед if влупить