- 
	
- Ещё есть вариант методом последовательного вычитания. На C ЙяР AVR тактов в 100-120 вписаться можно легко.  AU08(541 знак., 24.03.2012 04:11 - 04:20)
			
- Если дихотомию применить,т.е. первым сравнивать сразу с величиной 'делитель  - Юра(24.03.2012 10:18, 
)
					- Если дихотомию применить,т.е. первым сравнивать сразу с величиной 'делитель сдвинутый влево 4' и вычитать соответственнно и биты результата ставить, то можно даже и быстрее. - Юра(24.03.2012 10:19, 
)
							- пока вопрос решен, а там видно будет ) - whale(24.03.2012 12:49)
 
 
 - Если дихотомию применить,т.е. первым сравнивать сразу с величиной 'делитель сдвинутый влево 4' и вычитать соответственнно и биты результата ставить, то можно даже и быстрее. - Юра(24.03.2012 10:19, 
 
 - Если дихотомию применить,т.е. первым сравнивать сразу с величиной 'делитель  - Юра(24.03.2012 10:18, 
 - здесь об этом -> - m16_home(24.03.2012 00:00, ссылка)
			
- там тоже на константу делят - whale(24.03.2012 00:07)
 
 - x/y == x*((2<<N)/y)>>N ?   Для счёта денег и деления не на константу не очень годится, в остальных случаях вполне... - fk0(23.03.2012 23:50)
			
- у меня делитель не константа - whale(23.03.2012 23:53)
 
 - 12 тактов. Проц угадай сам, а потом сам же перепиши на свой физтеховский :)) MBedder(434 знак., 23.03.2012 23:26 - 23:34)
 - Смотреть в обменнике Hacker's Delight, он же Книга: Алгоритмические трюки для программистов Автор: Генри Уоррен. -> - Evgeny_CD(23.03.2012 23:23, ссылка)
			
- а озвучить тут можно ? ) - whale(23.03.2012 23:29)
					
- Там было тож:   Точкa oпopы из дому(63 знак., 24.03.2012 17:01, 
) 
 - Там было тож:   Точкa oпopы из дому(63 знак., 24.03.2012 17:01, 
 
 - а озвучить тут можно ? ) - whale(23.03.2012 23:29)
					
 - Берем славное число 65536, которое есть 2^16, и заранее преобразуем все делители к виду 65536/делитель, округленное до целого. А потом на это число множим в разрядной сетке long и отбрасываем младшие 2 байта.  Ксения(205 знак., 23.03.2012 23:01)
			
- Ничего не понял ) вы предлагает составить таблицу на 3000 значений ? - whale(23.03.2012 23:05)
					
- Это случай, когда требуется делить на константу. Такое деление можно заменить на умножение. А если множитель заранее неизвестен, то операции деления не избежать. - Ксения(23.03.2012 23:30)
							
- а, это понятно ), увы тут все наоборот ... - whale(23.03.2012 23:37)
 
 
 - Это случай, когда требуется делить на константу. Такое деление можно заменить на умножение. А если множитель заранее неизвестен, то операции деления не избежать. - Ксения(23.03.2012 23:30)
							
 
 - Ничего не понял ) вы предлагает составить таблицу на 3000 значений ? - whale(23.03.2012 23:05)
					
 - И делимое, и делитель меняются? Какой диапазон изменения? Требуемая точность? - SciFi(23.03.2012 22:56)
			
- делимое постояно, даже пусть будет 65536, делитель меняется от 200 до 3000, точность только целая часть, будет достаточно. - whale(23.03.2012 23:06)
					
- Если не ошибаюсь, это по сути 1/x, то есть от деления никуда не деться. Можно всякие аппроксимации, метод Ньютона и проч. - SciFi(23.03.2012 23:12)
							
- разложения числа  еще дольше будет считать - whale(23.03.2012 23:15)
									
- ладно, изменим вопрос -   whale(144 знак., 23.03.2012 23:19)
											
- дополнение  whale(56 знак., 23.03.2012 23:38)
													
- А надо ли именно частоту и так часто?  Может в алгоритме чего не того.  Если всё-таки надо, то почему нельзя использовать деление?  Если уж очень надо и процессор не умеет аппаратно делить, то может таки взять в руки ассемблер и написать деление в  fk0(69 знак., 23.03.2012 23:53)
															
- умеет только аппаратно умножать )  whale(130 знак., 24.03.2012 00:04)
																	
- Деление, случайно, нужно не для разгона/торможения с постоянным ускорением?  Там вообще корень квадратный помнится. Но от этого всего можно избавиться: функцию можно аппроксимировать разложением в ряд тейлора. Причём достаточно первых двух членов.  fk0(637 знак., 24.03.2012 10:48)
																			
- корень пока не нужен, управление BLDC на каждом шаге как вы правильно заметили whale(66 знак., 24.03.2012 12:48)
 
 - Это где-то аж 2..5% от потенциала 8-МГц 8-битника. Ты не просто не умеешь их готовить, а даже не знаешь, с какого бока к ним подойти :)) - MBedder(24.03.2012 00:42)
 
 - Деление, случайно, нужно не для разгона/торможения с постоянным ускорением?  Там вообще корень квадратный помнится. Но от этого всего можно избавиться: функцию можно аппроксимировать разложением в ряд тейлора. Причём достаточно первых двух членов.  fk0(637 знак., 24.03.2012 10:48)
																			
 
 - умеет только аппаратно умножать )  whale(130 знак., 24.03.2012 00:04)
																	
 - Если частота вычисляется на каждом обороте и есть инерция, то метод итераций (Ньютона) очень в тему, так как всегда есть хорошее первое приближение. - SciFi(23.03.2012 23:40)
															
- не, надо простой и грубый способ - whale(23.03.2012 23:48)
																	
- Ну, про таблицу уже сказано выше :-) - SciFi(23.03.2012 23:53)
																			
- Кстати в защиту табличного метода хочу сказать: таблица может быть не такая уж и большая, если между отдельными элементами использовать линейную интерполяцию. И ещё один ньюанс. Если речь про двигатель, то вполне возможно что формулами не всё так  fk0(122 знак., 24.03.2012 11:02)
																					
- вроде успевает пока по алгоритму что я привел ниже, посмотрим как на всех режимах а там подумаем ) - whale(24.03.2012 12:46)
 
 - ладно попробую пока так мож успеет...  17 тактов   whale(1290 знак., 24.03.2012 00:00)
																					
- Немного поправлю. Что-то у тебя неправильно с флагом C. Так как я не знаю всех условий задачи, особо вникать не буду.   mazur(1082 знак., 24.03.2012 12:03)
																							
- у меня вроде считает ) - whale(24.03.2012 12:45)
 
 
 - Немного поправлю. Что-то у тебя неправильно с флагом C. Так как я не знаю всех условий задачи, особо вникать не буду.   mazur(1082 знак., 24.03.2012 12:03)
																							
 
 - Кстати в защиту табличного метода хочу сказать: таблица может быть не такая уж и большая, если между отдельными элементами использовать линейную интерполяцию. И ещё один ньюанс. Если речь про двигатель, то вполне возможно что формулами не всё так  fk0(122 знак., 24.03.2012 11:02)
																					
 
 - Ну, про таблицу уже сказано выше :-) - SciFi(23.03.2012 23:53)
																			
 
 - не, надо простой и грубый способ - whale(23.03.2012 23:48)
																	
 
 - А надо ли именно частоту и так часто?  Может в алгоритме чего не того.  Если всё-таки надо, то почему нельзя использовать деление?  Если уж очень надо и процессор не умеет аппаратно делить, то может таки взять в руки ассемблер и написать деление в  fk0(69 знак., 23.03.2012 23:53)
															
 
 - дополнение  whale(56 знак., 23.03.2012 23:38)
													
 
 - ладно, изменим вопрос -   whale(144 знак., 23.03.2012 23:19)
											
 
 - разложения числа  еще дольше будет считать - whale(23.03.2012 23:15)
									
 
 - Если не ошибаюсь, это по сути 1/x, то есть от деления никуда не деться. Можно всякие аппроксимации, метод Ньютона и проч. - SciFi(23.03.2012 23:12)
							
 
 - делимое постояно, даже пусть будет 65536, делитель меняется от 200 до 3000, точность только целая часть, будет достаточно. - whale(23.03.2012 23:06)
					
 - все int - whale(23.03.2012 22:55)
 
 - Ещё есть вариант методом последовательного вычитания. На C ЙяР AVR тактов в 100-120 вписаться можно легко.  AU08(541 знак., 24.03.2012 04:11 - 04:20)