ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
22 ноября
5743 Топик полностью
Бaв (28.01.2004 11:50, просмотров: 1) ответил KoнcтaнтинT на А вы трассировали программу , на чем затык на моменте просчета точки или отрисовки?
Вот цикл на пиксель. Здесь есть одно умножение в индексе массива,но умножитель аппаратный,думаю замена на двумерный массив проблему не решит.Заремаренная область - рисование частотных меток.Весь этот кусок выполняется за ~10us.
			do
				{
				if (numbit) old = BuferSpectrNew[numbit - 1 + 8 * numcolumn];
				else
					{
					if (numcolumn) old = BuferSpectrNew[7 + 8 * (numcolumn - 1)];
					else old = BuferSpectrNew[numbit + 8 * numcolumn];
					}
				temp = BuferSpectrNew[numbit + 8 * numcolumn];
				if (temp > old)
					{
					if ((numbyte <= temp) && (numbyte > old)) maska |= (1 << numbit);
					}
				if (temp < old)
					{
					if ((numbyte < old) && (numbyte >= temp)) maska |= (1 << numbit);
					}
				if (temp == old)
					{
					if (numbyte == temp) maska |= (1 << numbit);
					}

/*		metka = 0;
		if (((320*(uint)CodeStart) + ((numbit + 8 * (uint)numcolumn)*(CodeStop-CodeStart)))%200 < (CodeStop-CodeStart)) metka=1;
			if (metka == 1)
				{
				if (PositionVizir == (numbyte - 1)) maska |= (1 << numbit);
				if (PositionVizir == (numbyte - 2)) maska |= (1 << numbit);
				if (PositionVizir == (numbyte - 3)) maska |= (1 << numbit);
				if (PositionVizir == (numbyte - 4)) maska |= (1 << numbit);

				if (PositionVizir == (numbyte + 1)) maska |= (1 << numbit);
				if (PositionVizir == (numbyte + 2)) maska |= (1 << numbit);
				if (PositionVizir == (numbyte + 3)) maska |= (1 << numbit);
				if (PositionVizir == (numbyte + 4)) maska |= (1 << numbit);
				}
*/				}
			while (++numbit < 8);