//Скрипт выгрузки в файл для обработки Ave=5; // Сглаживание 5 точек при поиске, чтоб не реагировало на шум менее 5 точек step=10; // сколько импульсов PWM пропустить и выводить строчку с результатами ChPWM=1; //Канал PWM synChPWM = 2.5 ; // Напряжение среза PWM ChVol1=2; // дополнительный канал напряжения //ChVol2=3; // возможно еще один канал напряжения pos2=SynchByEx(ChPWM, 1, synChPWM,0,0,Ave,0); //Начальная позиция // для первого цикла имитация предыдущего цикла count=1; // Текущий щетчик while (pos2>0) { pos1=pos2; // pos2 предыдущего цикла является pos1 для текущего цикла pos1a=SynchByEx(ChPWM, -1, synChPWM,pos1,0,Ave,0); if (pos1a>0) // если нашли pos2=SynchByEx(ChPWM, 1, synChPWM,pos1a,0,Ave,0); // ищем следующий фронт else pos2=-1; //иначе нет смысла искать if ((pos1a>0) && (pos2>0)) // если нашли оба фронта { time=pos1/Frequency; //Считаем время в секундах первого фронта PWM=(pos1a-pos1)/(pos2-pos1); // Считаем скважность как отношение между фронтами U1= AveValueAt(ChVol1,pos1,Ave); // Усредненное значение в точке pos в канале //U2= AveValueAt(ChVol2,pos1,Ave); // Усредненное значение в точке pos в канале if (count