Как вам такой тахометр?
Prikupets, написал процедуру деления 16/16 😃 Быстрая, но не думаю, что оптимальная. Слышал, что 16/16 есть за 100 тактов, и даже за 25 😃 , но это наверно на 16-тибитной платформе
Пока это не оформлено и представляет некоторую комерческую тайну. Но как только, так сразу 😃 Если есть вопросы - пишите в личку/на мыло. Помогу/поделюсь, чем смогу 😉
На форуме было обсуждение звукового тахометра.
Посоветовали мне тогда обратиться в Украину - написал дважды - молчат насмерть!
Может кто подскажет как решить этот вопрос. Звуковой нужен для автомодельных двигателей, желательно и для 2-х и для 4-х тактных моторов.
Prikupets, написал процедуру деления 16/16 😃 Быстрая, но не думаю, что оптимальная. Слышал, что 16/16 есть за 100 тактов, и даже за 25 😃 , но это наверно на 16-тибитной платформе
Пока это не оформлено и представляет некоторую комерческую тайну. Но как только, так сразу 😃 Если есть вопросы - пишите в личку/на мыло. Помогу/поделюсь, чем смогу 😉
деление 16/8 примерно так
clrf rem
movlw d’16’
movwf cnt
loop rlf val, f
rlf val+1, f
rlf rem, f
movfw div
subwf rem, w
btfsc STATUS, C
movwf rem
decfsz cnt, f
goto loop
rlf val, f
rlf val+1, f
val/div - val частное, rem остаток. 10*16 тактов или 7*16 если без цикла.
тем же способом 16/16, но уже с goto. чего существенно быстрее придумали для 16/16 в общем случае не представляю. Для частных случаев деления на конкретную константу - деление заменяется умножением и иногда ускоряется более чем существенно.
а применительно к счетчикам куда проще (не быстрее, но короче код) считать сразу в bcd с дробной частью. допустим если тебе посчитанное значение в конце каждый раз нужно поделить на 1234 и вывести в десятичном виде, то считать сразу так:
rem16 = rem16+ 0x35; // 0x10000 / 1234
if( carry ) bcdincrement(val)
Gold, это наверно для пиков. Щаз буду долго и упорно втыкать т.к. что-то совсем не понятен язык.
Можно хотя бы в двух словах алгоритм?
Gold, это наверно для пиков. Щаз буду долго и упорно втыкать т.к. что-то совсем не понятен язык.
Можно хотя бы в двух словах алгоритм?
rem = 0;
for(1..16) {
shift_left(rem,val_hi,val_lo, carry);
if( rem >= div ) {
rem -= div;
carry = 1;
}
else
carry = 0;
}
shift_left(val_hi,val_lo,carry)
обычное деление в столбик. в процессе делимое замещается на частное, чтоб лишних переменных не плодить
Ну у меня почти так же 😃
Итак, у нас появилась небольшая большая проблема. При проверке выяснилось, что фототранзисторы из мышек никак не реагируют на дневной свет 😮
Ну у меня почти так же 😃
Итак, у нас появилась небольшая большая проблема. При проверке выяснилось, что фототранзисторы из мышек никак не реагируют на дневной свет 😮
исправный фототранзистор ДОЛЖЕН реагировать на IR его составляющую.
как включали?
исправный фототранзистор ДОЛЖЕН реагировать на IR его составляющую.
И реагирует. Второй вариант более душный, но результативный. В уже разобранной мышке есть ИК светодиод (даже два, как и фототранзисторы 😃 ). Вешаем его через токоограничивающий резистор ну хотя бы на выход трансформатора 220/5 В с выпрямительным мостиком без емкостного фильтра и имеем так необходимые для настройки 100 Гц в инфракрасном диапазоне.
Добавлено: Вот приаттачил файлик в PDF с характеристиками фототранзистора от мышки.
Д. Заточник, все это, конечно, хорошо, но 100 гц есть т.к. свет от лампы ловится просто здорово. А вот с выключенной лампой, если пальцем помахать перед фототранзистором, то кажет 0 все равно.
Minus, ну дак коллектор эмиттер. Не помню, как именно. Именно при дневном свете у меня ничо не пашет.
В инструкции к фирменному тахометру написано примерно следующее: “Поместите тахометр позади пропеллера так, чтобы на пропеллер падал свет. В качестве источника освещения может выступать небо.”
Т.е. если просто дома ткнуть тахометром в пропеллер, то он ничего не намеряет. А вот если поднести самолет к окну, а потом померять…
Д. Заточник, все это, конечно, хорошо, но 100 гц есть т.к. свет от лампы ловится просто здорово. А вот с выключенной лампой, если пальцем помахать перед фототранзистором, то кажет 0 все равно.
Minus, ну дак коллектор эмиттер. Не помню, как именно. Именно при дневном свете у меня ничо не пашет.
Я правильно понял что 100 гц с лампы ентим фототранзистором “ловятся здорово” ?
Дабы вспомнили как именно енти “коллектор - эмитер” вот пару более - менее стандартных схем использования ентих фототранзисторов как сенсоров…
Ежли и включили правильно и транзистор рабочий а на пропеллер не реагирует - попробуйте ентот пропеллер подсвечивать IR же светодиодами…
Короче, статья, прошивки, исходники: www.radiokot.ru/circuit/digital/measure/03/ Если есть вопросы, то можно туда на форум, ну или ищите меня или того, кто ответит 😃
А хотелось бы узнать , кто-нибуть получил прошивку 4.35 , и чем она отличается от 4.33 для схемы www.geocities.com/ilufa/MT/MT_E.htm ?
а кто-нибудь повторял схему
modelism.net/taho.php?advid=3420268809&advrnd=4771…
во всех схемах из этого топика используются контроллеры снятые с производства, вот и ищу что-то доступное по элементной базе 😊
Доброго времени суток!!!
Народ!кто нибуть повторял эту схему www.geocities.com/ilufa/TACHO_E.htm ❓
у меня она не заработала 😠
Читай внимательно всю ветку про эти тахометры, Собака скорее всего порылась в фотодатчике и его обвязке. Для триггера нужны хорошие входные импульсы с крутыми фронтами. Как только получишь - заработает.
Читай внимательно всю ветку про эти тахометры, Собака скорее всего порылась в фотодатчике и его обвязке…
Не в фотодатчике дело…Косяк где-то в программе.Собирал я тахометр в PROTEUSе-фигню показует,а в железе- вообще ничего на индикаторах не высвечивает! ❓
Народ!!!Помогете разобраться с программой…буду благодарен!!!
У Филипа все проги рабочие. Ищите ошибки в монтаже.
Собирал ЛИЧНО! Все прекрасно работает. Т.е. программы работоспособные ☕
И у меня почему-то работает. 😜
Народ,я спрашивал про тахометр на светодиодных индикаторах,а не на LCD! 😊