ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Среда
10 июля
338704 Топик полностью
MegaJohn (04.07.2012 14:37, просмотров: 77) ответил mazur на Посоветуйте алгоритмы. Делаю девайс с шаговым двигателем и датчиками периметра. Сработка датчиков вызывает поворот вала ШД на угол соответствующий сработанному датчику. Есть сработанный датчик, есть вектор. Застрял на вот каком моменте. Вал может
типа такого ?  //------------------------------------------------------------------------------ // есть циклические величины, которые достигают какого то значения, переполнятся и становятся нулем ( к примеру секунды,минуты,часы,угол поворота вала ) // и в некоторых задачах возникает вопрос: имеется опопорная точка, и имеется текущая точка. Нужно понять кто кого опережает и на сколько // эта функция собсвенно это и делает. // к примеру есть опорное время 55мин (каждый час нужно поливать цветы в 55 мин ) // и есть текущее время X мин, нужно знать сколько времени осталось до поливки // тогда s16 diff = dif_vals_linear2round( curr_time, 55, 60 ); // получили diff = -10 осталось 10 мин и сейчас 45мин, // получили diff = +10, то это время прошло 10 мин назад и сейчас 5мин s16 PREFIX dif_vals_linear2round( u16 target, u16 refer, u16 size ) { u16 diff; if( target <= refer ) { diff = refer - target; if( diff < ( size / 2 ) ) return target - refer; else return size - diff; } else { diff = target - refer; if( diff < ( size / 2 ) ) return target - refer; else return diff - size; } }