|
|
|
|
233809 530 32 10 |
|
Опции темы | Поиск в этой теме |
07.03.2016, 21:37 | 201 |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25 Адрес: Харьков
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
DooMmen, с повышалкой тоже наигрались?))
__________________
батискаф: герметична, надійно ізольована від зовнішнього світу капсула,яка іде на дно |
07.03.2016, 22:00 | 202 |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07 Адрес: Украина, Харьков
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
MSS, передо мной на столе лежит) А вторая плата в M2 работает, правда плохо (надо прошивку переписывать с нуля - прерываний очень много, и прерывание wdt теряется, и режим не всегда переключается, да и допиливать еще много), времени катастрофически не хватает, но со временем приходят новые идеи, которые можно будет реализовать.
По глюку в прошивке посмотрел - есть такое, все началось с момента когда я ввел паузу перед сохранением режима (1 секунда), и в принципе можно её убрать и восстановить работу алгоритма сохранения памяти, или вообще отказаться от этого алгоритма (памяти и так на долго хватит), ну так как я противник костылей - буду искать решение. Есть несколько вариантов (во всех технология будет работать) Но счет идет на байты)) 1 - убрать паузу 1 сек. перед сохранением и добавить исправление (объем программы не изменится); 2 - оставить паузу 1 сек. перед сохранением (+2 byte) 3 - оставить паузу и добавить проверку предыдущего сохраненного значения (это уже мега экономия памяти EEPROM) (+8 byte). Пока сделал без паузы и проверки (можно раскомментировать по вкусу в std_loop). Прошивка как всегда - здесь. Тестируйте.
__________________
Скажем нет пиратству! - Качаем только лицензионные диски. [Исправлено: DooMmen, 07.03.2016 в 22:53] Причина: Добавил |
Поблагодарили: 3 раз(а) |
07.03.2016, 22:50 | 203 |
Ветеран Фонарёвки
Регистрация: 31.07.2013 Последняя активность: 01.12.2024 19:09 Адрес: Великий Новгород
Сообщений: 2741
Сказал(а) спасибо: 1208
Поблагодарили: 597 раз(а) в 505 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
|
07.03.2016, 23:10 | 204 |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07 Адрес: Украина, Харьков
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
Corvax,
Обновил прошивку (хотя я в предыдущем посте написал). |
08.03.2016, 12:39 | 205 |
Ветеран Фонарёвки
Регистрация: 04.06.2013 Последняя активность: Сегодня 20:32 Адрес: СПб
Сообщений: 5345
Сказал(а) спасибо: 508
Поблагодарили: 4884 раз(а) в 1721 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
Может, циферку добавить? И в первый пост разделить стабильная/тест. И пояснения по версиям. Кто новый, не следит за темой - очень трудно понять.
Можете посмотреть еще для 8x7135 и добавить возможность включать один постоянный режим как мигалку (по нескольким нажатиям), но недоступный из основной линейки. Это чтобы спрятать турбо >3A, но при этом работал и термоконтроль и остальное нормально. MSS сделал это для 1050мА. Я попытался по подобию сделать - работает, но из скрытого турбо по ТК не снижает режим, а отключается. [Исправлено: zazara, 08.03.2016 в 12:56] |
Поблагодарили: 1 раз |
DooMmen (08.03.2016)
|
08.03.2016, 12:43 | 206 |
|
Re: Народный драйвер мод v2. Часть 3.
Да, все под одним номером не наглядно. Я первый пост поправлю.
|
08.03.2016, 16:05 | 207 |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07 Адрес: Украина, Харьков
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
Я уже старую версию потер (хотя это не проблема), да и эта стабильно должна теперь работать. Можно только дописать в первом посте - обновлено 7.03.16 (исправлен WEAR_LEWELING, убрана пауза 1с перед сохранением). Фактически это не бета - в любом случае больших изменений не было что-бы версию менять, и хуже работать не должна (поменял одну строчку всего).
zazara, я до сих пор пользуюсь своими первыми стабильными версиями в своих фонарях (а их всего 3 шт), и все изменения дальнейшие делались в слепую с тестированием участниками данной темы, за что им огромное спасибо! Такой вариант управления то-же интересен, но можно и дальше его развить (как в моей повышайке) - можно было-бы сделать режим стробов скрываемым, и добавить выбор строба, но это много памяти надо, да и переписывать всю программу с нуля (а если на асме писать - то у меня до сих пор непонятки с алгоритмами термоконтроля и высасывателем батареи, но это надо сесть и разобраться). Посмотрел версию MSS - можно попробовать: Код:
#ifdef TURBO_MODE static INLINE void turbo(void) { uint8_t i; input_mode(); current_mode = TurboMod; while(1) { set_mode(current_mode); #ifdef THEMPERATURE_CONTROL calibrator10 = adch_temp; calibrator11 = calibrator10; #endif delay_ms(3); } } #endif |
Поблагодарили: 1 раз |
zazara (08.03.2016)
|
08.03.2016, 18:15 | 208 |
Ветеран Фонарёвки
Регистрация: 04.06.2013 Последняя активность: Сегодня 20:32 Адрес: СПб
Сообщений: 5345
Сказал(а) спасибо: 508
Поблагодарили: 4884 раз(а) в 1721 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
|
08.03.2016, 21:06 | 209 |
Новичок
Регистрация: 29.12.2013 Последняя активность: 26.01.2020 20:30 Адрес: Москва
Сообщений: 32
Сказал(а) спасибо: 7
Поблагодарили: 8 раз(а) в 6 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
DooMmen, Спасибо за быстрое исправление программы.
Потестил я на рабочем стенде ваш новый вариант LD_7135_v_2.6.5 исправленный. Вы писали 1 - убрать паузу 1 сек. перед сохранением и добавить исправление (объем программы не изменится); 2 - оставить паузу 1 сек. перед сохранением (+2 byte) как я понял вот участок программы где изменения сделаны. static NOINLINE void std_loop(void) { while(1) { set_mode(current_mode); if (IsNewMode()) { #ifndef NOMEM #ifdef WEAR_LEWELING // delay_sec(1); // задержка 1 сек. read_byte(CMODE_ADR); // if((read_byte(CMODE_ADR)) != current_mode) save_byte(CMODE_ADR, current_mode); #else delay_sec(2); if((ReadEEPROMByte(CFG_CURRENTMODE)) != current_mode) WriteEEPROMByte(CFG_CURRENTMODE, current_mode); #endif #endif } Так вот при варианте без паузы " 1 - убрать паузу 1 сек. перед сохранением и добавить исправление (объем программы не изменится);" // delay_sec(1); // задержка 1 сек. , сохраненный режим хранится в произвольной ячейке энергонезависимой памяти и каждый раз по разному и нельзя отследить ячейку в которую будет запись в следующий раз. А вот при варианте "2 - оставить паузу 1 сек. перед сохранением (+2 byte))" раскоментировать delay_sec(1); // задержка 1 сек. получается очень хорошо и наглядно, каждое сохранение режима фонаря перемещается на одну адресную ячейку выше. Очень хорошо и предсказуемо. Я бы даже рекомендовал именно этот вариант по умолчанию. А вариант 1 использовать только когда уж совсем памяти не хватает и 2 ячейки спасут. Поэтому я выбрал именно Ваш второй вариант с задержкой 1 сек несмотря на увеличении 2 ячеек в программе. (Я не совсем понимаю как работает программа в варианте 1 без задержки, а не прописываются ли там все ячейки подряд да еще по нескольку раз прежде чем она выберет конечный вариант ячейки???). Тем не менее я тестирую вариант на 5 режимов с памятью в новой версии LD_7135_v_2.6.5 (30мА, 85мА, 350мА, 1050мА, 2800мА , сделал аналог фонаря Fenix PD35, пользуюсь всеми режимами но в разных пропорциях конечно) и еще 5 дополнительных режимов (режимы- MOON, PULSE_MODE - собачий пульс 7,5 гц, Полицейский режим, SOS. SLOW_PULSE_MODE) и пока все это отлично работает но пока на стенде. Термоконтроль я выключил, у меня нет терморезисторов. Самое интересное у меня еще осталось 90 свободных ячеек памяти в контроллере. Спасибо за огромный труд, ведь такого чуда больше нигде нету. Потестирую еще 2 недели а потом может перешью во все свои фонари данную прошивку. Осталась одна мечта для меня. Единственно я никогда не пользовался и не понимаю как он работает, так это режим индикации батареи (он для меня не информативный). Вот если бы он показывал напряжение как в фонаре NITECORE HC-50 (при вставлении батареи он моргает напряжение. Сначала короткие вспышки это напряжение в Вольтах, затем пауза и еще короткие вспышки (это Десятые доли вольта). Например 3,9 Вольта на батарее соответствует 3 коротким вспышкам, пауза, затем 9 коротких вспышки. Вот было бы чудо реализации данной функции индикации батареи. Но это только мечты, без термоконтроля места вагон. Всем удачи. [Исправлено: Gebon, 08.03.2016 в 21:07] |
08.03.2016, 21:16 | 210 |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25 Адрес: Харьков
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
мигалки на индикацию схавают всю память. в программе написано в каментах на каких порогах - сколько отмигивает.
|
08.03.2016, 22:26 | 211 |
|
Re: Народный драйвер мод v2. Часть 3.
|
08.03.2016, 22:59 | 212 |
Новичок
Регистрация: 29.12.2013 Последняя активность: 26.01.2020 20:30 Адрес: Москва
Сообщений: 32
Сказал(а) спасибо: 7
Поблагодарили: 8 раз(а) в 6 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
В том то и дело в NITECORE HC-50 (Там тоже одна кнопка но с двумя парами контактов). Напряжение измеряется только один раз при вставлении батареи и как говорится без нагрузки, моргает зеленым светодиодом в кнопке. Если нужно опять узнать напряжение то необходимо снова открутить крышку и вкрутить обратно. Там получается контроллер под питанием всегда (Вот главный недостаток NITECORE HC-50 , всегда есть ток утечки пусть он мизерный но есть).
У Вас же по запросу в дополнительных режимах (4 клика) уже есть функция измерения напряжения как я понимаю называется (состояние батареи ). Вот это и есть идеальное решение. Когда хочешь тогда и меряешь напряжение без нагрузки (пусть также нажал 4 клика) а потом моргаешь результат в виде как NITECORE HC-50. Этого достаточно. Другое дело наверно много программного кода может потребоваться для правильного мырганья. Причем я знаю, что Вы можете идеально мерить напряжение. Проверял я все свои драйвера перед установкой их в фонарики, например полное отключение светодиода при 2,9 Вольт идеально происходит у всех драйверов. |
09.03.2016, 00:07 | 213 |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07 Адрес: Украина, Харьков
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
Без паузы происходит сохранение режима при каждом нажатии на кнопку (что я думаю не очень вариант (сейчас поправлю).
По поводу отмигивания напряжения - точное напряжение никогда не покажет, питание контроллера идет через диод, потом падения везде есть, и ждать долго пока промигает) А в данном варианте - всё просто) Обновил прошивку (добавил паузу). [Исправлено: DooMmen, 09.03.2016 в 00:12] |
09.03.2016, 20:48 | 214 |
Новичок
Регистрация: 29.12.2013 Последняя активность: 26.01.2020 20:30 Адрес: Москва
Сообщений: 32
Сказал(а) спасибо: 7
Поблагодарили: 8 раз(а) в 6 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
DooMmen,
Я все таки выскажу свою мысль, может меня не так поняли по поводу индикации напряжения на аккумуляторе. Как я понял и мне подсказали что вот участок программы где меряется батарея, а потом по 4 кликам входим в режим индикации батареи и фонарик должен проморгать как я понял по 5 бальной шкале. //Уровни напряжений индикации //val = ((V_bat - V_diode) * R2 * 255) / ((R1 + R2) * V_ref) //V_diode = 0.28V; R1 = 19.1k; R2 = 4.7k #define U1 0x98 // 3.6 #define U2 0xA0 // 3.7 #define U3 0xA4 // 3.8 #define U4 0xAB // 3.95 #define OFF_VOLTAGE 0x7D // 2.90V ;3.00V = 7F Таким образом получается, что я должен помнить эти значения наизусть (знать значения из программы) и привязку их с количеством кликом. Это как то сложно и не информативно. Я до сих пор не понимал как этим пользоваться, и почему то у меня всегда было 5 вспышек, скорее всего не умею пользоваться. Я имел ввиду не точное измерение напряжения во всем диапазоне напряжений как вольтметр ( вы даже вычисляли сотые доли Вольта U4 = 3,95В) , а всего лишь десятые доли вольта в нашем рабочем диапазоне которые нам надо и особая точность здесь ни к чему. Например достаточно 10 значений от 3.3В(min) до 4.2В(max) вот они (3.3В , 3.4В , 3.5В, 3.6В, 3.7В, 3.8В, 3.9В, 4.0В, 4.1В, 4.2В). Как видите все точно также как Вы сделали только не 4 значения напряжения в программе (3.6В, 3.7В, 3.8В, 3.95В) а будет 10 значений как указаны Выше. Ну если 10 значений много окажется (от не хватки памяти например) можно еще подрезать до 8 значений (например убрать 3.3В и 3.4В). У Вас уже в принципе все готово для вычисления напряжения, останется только дописать программу под 10 значений (или 8 значений) вместо 4 значений а потом проморгать правильно измеренное напряжение как я предлагал по принципу NITECORE HC-50. При входе в дополнительный режим индикации по 4 кликам , сначала проморгать напряжение в Вольтах (3 или 4 короткие вспышки) затем ПАУЗА и короткие вспышки соответствующие доли Вольта. Вот потрясающая была бы вещь, практически встроенный мультиметр. DooMmen, вы писали (и ждать долго пока промигает). Я с этим категорически не согласен, потому, что до сегодняшнего дня я разбираю фонарики , измеряю напряжения аккумуляторов цифровым мультиметром, а затем принимаю решение о зарядке аккума. Я ставлю на зарядку если напряжение соответствует 3.3В-3.5В. Если заинтересует мой вопрос с индикацией батареи в Вольтах , могу попробовать заснять на телефон реальную индикацию в налобном фонаре NITECORE HC-50. |
09.03.2016, 21:00 | 215 |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25 Адрес: Харьков
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
Gebon, вы можете подобрать значения так, чтоб отмаргивало нужное вам напряжение. напряжение отключения только не трогайте. Посторойте график и аппроксимацией получите ваши 3,3 3,4 3,5 3,6
|
09.03.2016, 21:03 | 216 |
животное опасно
Регистрация: 18.11.2014 Последняя активность: 23.02.2022 10:39 Адрес: борисове поле
Сообщений: 958
Сказал(а) спасибо: 56
Поблагодарили: 153 раз(а) в 129 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
на самом деле драйвер с его получившимся интерфесом достаточно информативен
в плане индикации заряда тоже и высасыватель и то что по мере разряда не дает включать старшие режимы до сих пор пользуюсь им и его функционала хватает с головой обременять его зеброинтерфесом и еже с ними более чем абсурдно кстати была уже попытка прикрутить к подобной разработке указанный выще измеритель закончилось все плачевно кто помнит [Исправлено: дядюшка_зуэ, 09.03.2016 в 21:04] |
09.03.2016, 21:07 | 217 |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25 Адрес: Харьков
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
|
09.03.2016, 21:10 | 218 |
животное опасно
Регистрация: 18.11.2014 Последняя активность: 23.02.2022 10:39 Адрес: борисове поле
Сообщений: 958
Сказал(а) спасибо: 56
Поблагодарили: 153 раз(а) в 129 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
|
09.03.2016, 21:12 | 219 |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25 Адрес: Харьков
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
Ну да. То в Индиге не дает
|
09.03.2016, 21:20 | 220 |
Новичок
Регистрация: 29.12.2013 Последняя активность: 26.01.2020 20:30 Адрес: Москва
Сообщений: 32
Сказал(а) спасибо: 7
Поблагодарили: 8 раз(а) в 6 сообщениях
|
Re: Народный драйвер мод v2. Часть 3.
Только что вчера столкнулся с просадкой и был в недоумении как работает фонарик в максимальных режимах (то переходит на меньший режим то через 2 секунды отключается совсем). Случилось с фонарем Ultrafire C8 с нашим драйвером LD_7135_v_2.6.5. Оказалась плохая кнопка выключения (сопротивление менялось от 2 до 4 Ом, а должно быть почти 0 Ом) и на максимуме в 2.1А из за плохой кнопки выключения проседала сильно напруга на драйвер несмотря на полностью заряженный аккум. Искал причину 2 часа не понятного поведения фонаря.
[Исправлено: Gebon, 09.03.2016 в 21:29] |