Сообщение от
Евгений Андреевич
Здравстуйте! Появился у меня вопрос по работе с таймерами и нигде не могу найти ни примера, ни объяснения.
Задача следующая: разработать 2 функциональных блока. Первый должен заполнять int массив 10х10 элементов случайными числами. Случайные числа – по TON с пресетом 217 мс дёргать системные миллисекунды. Соответственно полное заполнение в районе 22 с. Второй блок ищет максимальное число, его индексы и среднее арифметическое всех элементов.
Итак, делаю я первый функциональный блок заполнения массива. Код:
FOR i:=0 TO 9 DO
FOR j:=0 TO 9 DO
ton1(IN:=TRUE, PT:=T#217ms);
IF ton1.Q THEN
a:=SysTimeGetMs();
x[i,j]=a;
END_FOR
END_FOR
Я не понимаю почему таймер срабатывает всего лишь 1 раз и независимо от цикла. То есть на первом шаге он запустился, а циклы i,j моментально проходят до конца, а таймер просто сам по себе отработал и все. Помогите пожалуйста разобраться, как правильно вызывать таймер на каждой итерации цикла. Пробовал сделать 2 функциональных блока: в одном циклы, на каждой итерации вызывается второй функциональный блок с таймером и арифметическим действием, но ничего не меняется, таймер так же сам по себе отрабатывает 1 раз и на этом все. Не знаю, что делать.