|
|
![]() ![]() |
|
|
![]() ![]() ![]() ![]() |
|
Опции темы | Поиск в этой теме |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]()
vdavid, похоже он заходит и сразу выходит из мунлайта.
выбрано в программе #define RST_LEV_MOON / сброс яркости при выходе из мунлайта (в режиме NOMEM - поумолчанию включен) - выходит в минимальный режим, если его закоментировать - то выходит сразу в тот режим, в котором он был при вызове мунлайта. Ничего не понимаю ![]() upd если закоментировать //#define ONECLICKMOON - то входит в мунлайт по 3 кликам и сидит там пока еще раз 3 клика не сделать.... такие вот пироги попробовал поставить кнопку и кнопкой кликать - не меняется ничего. [Исправлено: MSS, 18.03.2015 в 17:44] |
![]() |
![]() |
![]() |
![]() ![]() |
животное опасно
Регистрация: 18.11.2014 Последняя активность: 23.02.2022 10:39
Сообщений: 958
Сказал(а) спасибо: 56
Поблагодарили: 153 раз(а) в 129 сообщениях
|
![]()
так у Твинтвин как раз помимо не входило в мунлайт еще и промаргивает индикацию батарей быстрее, чем надо было
и была это софтовая проблема выявилось после переустановки студии и тулчейна у меня тоже в разных драйверах с разной скоростью отмаргивает вплодь до стробов шью одну и туже очень удачная только уровень мунлайта под себя правлю меньше и шаги как меня научили, еще линейку режимов тут уж как кому нравиться странно что у Вас это вот так вот вдруг вылезло до этого ж было нормально или чтото нето |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]()
дядюшка_зуэ, сам не знаю, почему. Именно сброс происходит если выбран выход по одному нажатию. На драйвере уже дорожки отслаиваться начали от перепаивания.
Зашивал я и hex, и скомпилированные версии. Завтра еще попробую. Может кондер допаять стоит попробовать на 1ю ногу... Еще наверно стоит попробовать //#define FREQMOON_OFF раскоментировать. [Исправлено: MSS, 18.03.2015 в 21:59] |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]()
MSS, Попробуйте вот здесь:
Код:
static NOINLINE void input_mode(void) { all_off(); delay_ms(150); Или здесь: Код:
static INLINE void mode_line_chg(void) // включаем MODELINECHG #ifdef ONECLICKMOON { input_mode(); WriteEEPROMByte(CFG_MOONMODE, 0x00); |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]()
, не успевает выключиться перед сменой регистра? тоесть если светодиод у нас не успеет выключиться в регистре будет не 0хАА, а мусор?
Да, попробую обязательно. Уже завтра на работе. А в этом куске ничего не может повлиять? [Исправлено: MSS, 18.03.2015 в 22:55] |
![]() |
![]() |
![]() |
![]() ![]() |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
![]()
Странно то что ClearNewMode() делается по прерыванию через 250мс после включения, а delay_ms(150) - это задержка на 300мс (это если в компиляторе указана частота 4.8МГц, а в контроллере фьюзами выставлено 4.8МГц, но в контроллере включен делитель на 2). Значит проблема в том что не срабатывает прерывание, или частота указанная в компиляторе устанавливается компилятором с учетом делителя. Дописать ClearNewMode() - вариант, но это 6 байт кода, и костыль.
MSS, надо смотреть установленные частоты, какая версия студии? Обновил прошивку (один мелкий недочет, и поправил термоконтроль по рекомендации vdavid). Костыль добавил в mode_line_chg, но пока закоментировал. Прошивка все там-же - LD_7135_v_2.6.5.zip.
__________________
Скажем нет пиратству! - Качаем только лицензионные диски. |
![]() |
![]() |
Поблагодарили: 1 раз |
MSS (18.03.2015)
|
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]()
MSS, Дело в том, что WDT должен щелкнуть до выхода из mode_line_chg. Время для собаки - 250 мс, задержка delay_ms(150) - должно быть 300 мс, как мне кажется. Если тактовый генератор завышает частоту, а генератор собаки - наоборот занижает, то может быть, что WDT срабатывает позже, чем мы рассчитываем. У Твинтвин проблема была из-за тулчейна от студии 4.18 и версий рядом с ней. Там был интересный баг, когда _delay_ms занижал интервал в 4 раза, а _delay_us - в 3. Поэтому частота промаргивания уровня батареи была выше в 4 раза и были глюки с мунлайтом по той же причине.
|
![]() |
![]() |
![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]()
DooMmen, студия четвертая. Есть еще шестая, но она у меня делает по объему больше файл, чем четвертая
![]() Частоты наверно нормальные, я же и hex ваш заливал, один хрен... я вот думаю, может быть это из-за кондера по питанию? у меня ведь не 105С, а АК-47. Стробы медленные и индикация заряда батареи отмаргивается не быстро (около 1 сек 1 моргание). ладно не буду так голословно заявлять, завтра еще раз все прошью и проверю-посчитаю ![]() Цитата:
[Исправлено: MSS, 18.03.2015 в 23:16] |
|
![]() |
![]() |
![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]() Цитата:
Кстати, мне кажется лучше сделать по умолчанию без кондера. Большинство не делают себе кнопку с подсветкой, а так оно сбивает немного. И диод тоже лишнее. Это лучше дополнительно менять - если в драйвер с паяльником лезут, а не только дорожки режут ИМХО [Исправлено: MSS, 18.03.2015 в 23:23] |
|
![]() |
![]() |
![]() |
![]() ![]() |
Участник форума по OpenID
Регистрация: 08.01.2014 Последняя активность: 21.02.2021 00:07
Сообщений: 493
Записей в дневнике: 3 Сказал(а) спасибо: 329
Поблагодарили: 151 раз(а) в 89 сообщениях
|
![]()
Сделал без конденсатора, а вот с диодом - раньше было непонятно работает, или нет, и версия с диодом - исходная авторская версия, но если оно работает - меняю. Прошивка там-же.
|
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]()
, я ниразу не впаивал диод. На кинге у меня стоит транзистор, но там "по мотивам" этой темы скопирован термоконтроль и всунут в версию для тактовой кнопки ceramic.
А терморезисторы на 105С из этой темы у меня тоже без диода. Может и не правильно, но у меня так работает. Вот теперь еще и с корректировкой термоконтроля от vdavid буду прошивать. |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]()
Диод там ровным счетом ничего не дает. Для того, что бы он работал как стабилизатор, нужно добавить еще пару резисторов. А кому это надо? Вот просто диод вместо термистора мне понравился.
Попробуйте прошить вот это: Код:
#include <avr/io.h> #include <avr/interrupt.h> #include <avr/sleep.h> #include <util/delay.h> #define WDTO_250MS 0x04 ISR(WDT_vect) { PORTB ^= (1<<PB0); } int main(void) { DDRB=3; PORTB=0; WDTCR = (_BV(WDCE) | _BV(WDE)); WDTCR = (_BV(WDTIE) | WDTO_250MS); sei(); while (1) { _delay_ms(150); cli(); PORTB ^= (1<<PB1); sei(); } } |
![]() |
![]() |
![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]()
avr studio версия 416 build 638.
медленный строб - 15 вспышек за 10 сек. заряд батареи отображает 5 миганий и строб отключенного термоконтроля за 1,5-2 сек. В архиве практически тоже самое, что было у вас, только отключен кондер и диод. DooMmen, файл 7135x8v26.lss там же после компиляции. Поменял. Проблема решена на значении в 500. При 200, 300 ничего не менялось. Это тоже помогло. При старом значении delay_ms(150) также остается в мунлайте и выходит-входит как и должно. Цитата:
![]() t=1/(2F) получаем для WDT=283мс, для daley(150)=85мс Тоесть вочдог примерно попадает, а вот задержка в два раза меньше выходит. |
|
![]() |
![]() |
![]() |
![]() ![]() |
|
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]() Цитата:
Только это заменил в стандартной прошивке. static INLINE void initialize(void) { CLKPR = 0x80; CLKPR = 0x02; // устанавливаем делитель тактовой частоты А закоментировать или раскоментировать //#define FREQMOON_OFF ничего не дает. Может стоит эти CLKPR = 0x02; оставить в прошивке по умолчанию? Или как оно так получается, что на одних работает, на других нет? Зависит от МК или от чего? |
|
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]()
У Вас МК бракованный. По фьюзам тактовая частота должна быть 4.8 Мгц, а по факту - в два раза больше. Оставлять же CLKPR = 0x02 не стоит, тогда увеличивается минимальное время включенного состояния для КК.
[Исправлено: vdavid, 19.03.2015 в 11:36] |
![]() |
![]() |
Поблагодарили: 1 раз |
MSS (19.03.2015)
|
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 25.01.2015 Последняя активность: 16.02.2025 22:50
Сообщений: 1584
Сказал(а) спасибо: 268
Поблагодарили: 509 раз(а) в 322 сообщениях
|
![]()
MSS, А остальные тиньки из приехавших такие же? Можно залить в них прошивку из поста 673 и проверить частоты не вынимая из сокета.
|
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 28.04.2013 Последняя активность: 08.01.2024 23:25
Сообщений: 3969
Сказал(а) спасибо: 529
Поблагодарили: 921 раз(а) в 628 сообщениях
|
![]()
vdavid, та вот думаю наверно напишу китайцу WTF...
![]() Проверить смогу только завтра. Они дома. Но я думаю что оно все такое будет. Меня вполне устроит и 8,6МГц деленное на 2 программно. Светляк для меня не самый важный режим, просто зачем отказываться от него, если он уже есть ![]() В общем можно подытожить. Если у вас глюки со входом в мунлайт - смотреть нужно на работу медленного строба. Если он чаще, чем 1 раз в секунду - очень вероятно, что частота работы МК не правильная. Возможные варианты решения подсказаны vdavid, результаты описаны выше https://forum.fonarevka.ru/... В итоге я остановился на такой прошивке, как во вложении. В ней заменен CLKPR = 0x02; для мунлайта CLKPR = 0x05; и уменьшено время перебора в рампинге. Потребляет в светляке 1,2мА Немного переделан велостроб, чтоб оснавная яркость бралась из текущего режима, а мигает оно на максимуме (здесь возможно такое, что при переходе из максималки в велостроб - мигать не будет ничего, но зачем тогда на максималке в строб заходить). Память занята все полностью - 1024. Изменения от vdavid для термоконтроля в ней тоже учтены. Фьюзы Lo=79 Hi=FD. [Исправлено: MSS, 19.03.2015 в 12:46] |
![]() |
![]() |
![]() |
![]() ![]() |
Ветеран Фонарёвки
Регистрация: 08.10.2011 Последняя активность: 30.03.2024 21:54
Сообщений: 7998
Сказал(а) спасибо: 934
Поблагодарили: 5203 раз(а) в 2785 сообщениях
|
![]() |
![]() |
![]() |