|
|
![]() ![]() |
|
|
![]() ![]() ![]() ![]() |
|
Опции темы | Поиск в этой теме |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
|
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]()
Внешний не сильно облегчает ситуацию, судя по моему опыту. Но если он выполнен в виде токового монитора (зеркала, чтоб шунт не на массе сидел), то тогда действительно оправдан. Да и можно же свободными лапами усиление переключать, достаточно резисторы подтягивать к массе. Тогда с динамическим диапазоном вообще проблем не должно быть...
Цитата:
ОС будет шуметь и лагать, если её "педаль газа" будет люфтить. Это я о 8-ми битах ШИМ, которых обычно мало. Их бы тоже размазать до 16-ти полезно. [Исправлено: INFERION, 31.07.2013 в 00:40] |
|
![]() |
![]() |
Поблагодарили: 1 раз |
Tamagotchi (31.07.2013)
|
![]() |
![]() ![]() |
![]() |
![]()
Так и попробую. Микрухи у меня такие уже есть, думаю 2 варианта усиления будет достаточно... ног жалко, хочется еще индикатор сделать, не такой, как у ВАс в Indigo, попроще.
|
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]()
Тут еще проблема - разрядность ШИМ. Из-за большого диапазана напряжения питания. Если стабилизировать питание МК -нужна еще нога для замеров питания, вот у меня и возникла идея ограничить амплитуду ШИМ, а уже потом RC цепочку вешать.
[Исправлено: Tamagotchi, 31.07.2013 в 00:34] |
![]() |
![]() |
![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]() Цитата:
У меня с ПИД пока никак, не трогал. Я тут алгоритм управления интересный замутил. Одна функция, без параметров, вызывается по таймеру (или как угодно, но в цикле), возвращает 8-битную маску кликов. Младшие 4 бита - короткие клики (от одного до 4), старшие - длинные. В итоге проверка сводится к простейшему условию: if (click == (1<<номер_бита)) {делай то, что надо}. Можно управление вертеть-крутить как угодно. Проверил, работает. Код там же. |
|
![]() |
![]() |
Поблагодарили: 1 раз |
Tamagotchi (31.07.2013)
|
![]() |
![]() ![]() |
![]() |
![]()
Я пока код не смотрел, но долго размышлял об управленни тактовой кнопкой... вот та первая ссылка на EA с видео про управление одной кнопкой... там после кликанья пауза и только потом реакция. В фонарях такое недопустимо. У INFERION очень удачно получилось: включение/выклюбчение одним быстрым кликом, а переключение режимов двойным. Видео с демкой видели?
И вот здесь чел паяльник собрал у него очень интересная реализация PID ну, это IMHO. |
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]()
А в любом случае, даже при быстром клике реакция будет только на отпускание. Иначе не отличить длинный от короткого.
Завтра допилю его для длинных нажатий (около 10 сек) и прочего. Угу, гляну. |
![]() |
![]() |
![]() |
![]() ![]() |
|
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]() Цитата:
Код:
in R9, SREG ;Over1 add R15, R7 ;Сигма-дельта модулятор PWM adc R10, R8 out OCR1A, R10 clr R10 out SREG, R9 reti Суть простая - остаток, который не пролез в компаратор, будет накапливаться до целого значения и кратковременно добавляется к значению в компараторе. Чем больше этот остаток, тем чаще проскакивают эти переполнения. Сигнал напоминает шум последнего бита, но в среднем это значение повторяет содержимое R8:R7. Как реализовать на Си - я даже не знаю. Я просто плохо в нём ориентируюсь. Тут надо число разбить на старшую и младшую часть, старшую отправить к ШИМ, а младшую добавить к переменной, которую затем сравнивать с 255, и если число оказалось больше - инкрементировать ШИМ и отнять от переменной 256. Только сколько это всё ресурсов то сожрёт?.. [Исправлено: INFERION, 31.07.2013 в 01:11] |
|
![]() |
![]() |
Поблагодарили: 1 раз |
Tamagotchi (31.07.2013)
|
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]()
А это у Вас в драйвере на TPS? Я все с ним забавляюсь. Если я питаю драйвер от 2-х вольт и от 4.2 очень большая разница, а еще регулирование...
|
![]() |
![]() |
![]() |
![]() ![]() |
||
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]() Цитата:
Цитата:
Мы тут хоть по теме то трындим, или в конец обнаглели? ![]() [Исправлено: INFERION, 31.07.2013 в 01:07] |
||
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8162 раз(а) в 2385 сообщениях
|
![]()
В видео не видно, но если я нажму не 6 раз, а 7, то он тут же включит первый режим. 8 - второй и т.д. Т.е. на любые действия кнопка реагирует незамедлительно, а уже потом думает - стоило ли сделать что-то другое, пока человек кнопку держит. Это как пример. Может и тут нажав 4 раза можно пропустить свистоперделки и сразу включить фонарь...
[Исправлено: INFERION, 31.07.2013 в 01:31] |
![]() |
![]() |
![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1914 раз(а) в 1180 сообщениях
|
![]() Цитата:
По поводу управления. Я вот что думаю: во время первого клика, когда только кнопка нажата (но ещё не отпущена) сразу выходить на средний режим. Пока он будет выходить, если кнопка удерживается - переключить на минимум, если двойной пошел - на максимум и т.д. по алгоритму. Даже с блокировкой нормально получится, во время тройного клика он будет выходить на средний режим, потом погаснет, и получится что мигнёт. --- Кстати, вопрос заядлым сишникам: как задать дефайн (или макрос), чтобы там участвовали дробные числа, но в код он подставил целое? Например хочу задефайнить количество "тиков", как время * частоту. Время соответственно дробное, меньше единицы, и в код подставляется что-то типа (448*0. ![]() [Исправлено: ploop, 31.07.2013 в 08:15] Причина: вопрос добавил |
|
![]() |
![]() |