|
|
| ||||||||
|
|
|
|
309614
1248
32
10
|
|
Опции темы | Поиск в этой теме |
|
|
1121
|
![]() |
|
|
|
|
|
|
1122
|
|
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8163 раз(а) в 2386 сообщениях
|
Внешний не сильно облегчает ситуацию, судя по моему опыту. Но если он выполнен в виде токового монитора (зеркала, чтоб шунт не на массе сидел), то тогда действительно оправдан. Да и можно же свободными лапами усиление переключать, достаточно резисторы подтягивать к массе. Тогда с динамическим диапазоном вообще проблем не должно быть...
Цитата:
ОС будет шуметь и лагать, если её "педаль газа" будет люфтить. Это я о 8-ми битах ШИМ, которых обычно мало. Их бы тоже размазать до 16-ти полезно. [Исправлено: INFERION, 31.07.2013 в 00:40] |
|
|
|
|
| Поблагодарили: 1 раз |
Tamagotchi (31.07.2013)
|
|
|
1123
|
![]() |
Так и попробую. Микрухи у меня такие уже есть, думаю 2 варианта усиления будет достаточно... ног жалко, хочется еще индикатор сделать, не такой, как у ВАс в Indigo, попроще.
|
|
|
|
|
|
1124
|
![]() |
Тут еще проблема - разрядность ШИМ. Из-за большого диапазана напряжения питания. Если стабилизировать питание МК -нужна еще нога для замеров питания, вот у меня и возникла идея ограничить амплитуду ШИМ, а уже потом RC цепочку вешать.
[Исправлено: Tamagotchi, 31.07.2013 в 00:34] |
|
|
|
|
|
1126
|
|
|
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1915 раз(а) в 1181 сообщениях
|
Цитата:
У меня с ПИД пока никак, не трогал. Я тут алгоритм управления интересный замутил. Одна функция, без параметров, вызывается по таймеру (или как угодно, но в цикле), возвращает 8-битную маску кликов. Младшие 4 бита - короткие клики (от одного до 4), старшие - длинные. В итоге проверка сводится к простейшему условию: if (click == (1<<номер_бита)) {делай то, что надо}. Можно управление вертеть-крутить как угодно. Проверил, работает. Код там же. |
|
|
|
|
| Поблагодарили: 1 раз |
Tamagotchi (31.07.2013)
|
|
|
1127
|
![]() |
Я пока код не смотрел, но долго размышлял об управленни тактовой кнопкой... вот та первая ссылка на EA с видео про управление одной кнопкой... там после кликанья пауза и только потом реакция. В фонарях такое недопустимо. У INFERION очень удачно получилось: включение/выклюбчение одним быстрым кликом, а переключение режимов двойным. Видео с демкой видели?
И вот здесь чел паяльник собрал у него очень интересная реализация PID ну, это IMHO. |
|
|
|
|
|
1128
|
![]() |
|
|
|
|
|
|
1129
|
|
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1915 раз(а) в 1181 сообщениях
|
А в любом случае, даже при быстром клике реакция будет только на отпускание. Иначе не отличить длинный от короткого.
Завтра допилю его для длинных нажатий (около 10 сек) и прочего. Угу, гляну. |
|
|
|
|
|
1130
|
|
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8163 раз(а) в 2386 сообщениях
|
Цитата:
Код:
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)
|
|
|
1131
|
![]() |
|
|
|
|
|
|
1132
|
|
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1915 раз(а) в 1181 сообщениях
|
|
|
|
|
|
|
1134
|
![]() |
А это у Вас в драйвере на TPS? Я все с ним забавляюсь. Если я питаю драйвер от 2-х вольт и от 4.2 очень большая разница, а еще регулирование...
|
|
|
|
|
|
1135
|
||
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8163 раз(а) в 2386 сообщениях
|
Цитата:
Цитата:
Мы тут хоть по теме то трындим, или в конец обнаглели? Я то тут распинаюсь в надежде что это всё пишется под драйвер, распаивающийся в обсуждаемых триплах...
[Исправлено: INFERION, 31.07.2013 в 01:07] |
||
|
|
|
|
|
1136
|
![]() |
|
|
|
|
|
|
1137
|
![]() |
|
|
|
|
|
|
1138
|
![]() |
|
|
|
|
|
|
1139
|
![]() Регистрация: 07.04.2013 Последняя активность: 13.06.2023 02:24
Сообщений: 5759
Сказал(а) спасибо: 340
Поблагодарили: 8163 раз(а) в 2386 сообщениях
|
В видео не видно, но если я нажму не 6 раз, а 7, то он тут же включит первый режим. 8 - второй и т.д. Т.е. на любые действия кнопка реагирует незамедлительно, а уже потом думает - стоило ли сделать что-то другое, пока человек кнопку держит. Это как пример. Может и тут нажав 4 раза можно пропустить свистоперделки и сразу включить фонарь...
[Исправлено: INFERION, 31.07.2013 в 01:31] |
|
|
|
|
|
1140
|
|
|
Ветеран Фонарёвки
Регистрация: 06.03.2013 Последняя активность: 15.08.2024 23:42
Сообщений: 4776
Сказал(а) спасибо: 657
Поблагодарили: 1915 раз(а) в 1181 сообщениях
|
Цитата:
По поводу управления. Я вот что думаю: во время первого клика, когда только кнопка нажата (но ещё не отпущена) сразу выходить на средний режим. Пока он будет выходить, если кнопка удерживается - переключить на минимум, если двойной пошел - на максимум и т.д. по алгоритму. Даже с блокировкой нормально получится, во время тройного клика он будет выходить на средний режим, потом погаснет, и получится что мигнёт. --- Кстати, вопрос заядлым сишникам: как задать дефайн (или макрос), чтобы там участвовали дробные числа, но в код он подставил целое? Например хочу задефайнить количество "тиков", как время * частоту. Время соответственно дробное, меньше единицы, и в код подставляется что-то типа (448*0. , а надо отбросить дробную часть и подставить результат 358. Иначе начинает линковать флоат-библиотеку, а это АД кромешный на два кило.
[Исправлено: ploop, 31.07.2013 в 08:15] Причина: вопрос добавил |
|
|
|
|