Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 144 из 144 ПерваяПервая ... 4494134141142143144
Показано с 1,431 по 1,437 из 1437

Тема: Микроконтроллеры AVR

  1. #1431

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    528
    16 байт
    Код:
    00000000 <.sec1>:
       0:    b9 9a           sbi    0x17, 1    ; 23
       2:    8f ef           ldi    r24, 0xFF    ; 255
       4:    98 2f           mov    r25, r24
       6:    01 97           sbiw    r24, 0x01    ; 1
       8:    97 ff           sbrs    r25, 7
       a:    88 bb           out    0x18, r24    ; 24
       c:    e1 f7           brne    .-8          ;  0x6
       e:    f9 cf           rjmp    .-14         ;  0x2
    Здеся я сдулся, хоть нутром и чую, что тоже не предел

    Добавлено через 34 минут(ы):

    Накаркал (:
    14 байт
    Код:
    00000000 <.sec1>:
       0:    b9 9a           sbi    0x17, 1    ; 23
       2:    31 97           sbiw    r30, 0x01    ; 1
       4:    31 97           sbiw    r30, 0x01    ; 1
       6:    f7 ff           sbrs    r31, 7
       8:    e8 bb           out    0x18, r30    ; 24
       a:    e1 f7           brne    .-8          ;  0x4
       c:    fa cf           rjmp    .-12         ;  0x2
    10 байт.. уже даже не смешно.
    Код:
    00000000 <.sec1>:   0:    b9 9a           sbi    0x17, 1    ; 23
       2:    31 97           sbiw    r30, 0x01    ; 1
       4:    f7 ff           sbrs    r31, 7
       6:    e8 bb           out    0x18, r30    ; 24
       8:    fc cf           rjmp    .-8          ;  0x2
    Вложения Вложения
    • Тип файла: zip blink.zip (208 байт, Просмотров: 8)
    • Тип файла: zip blink.zip (216 байт, Просмотров: 9)
    • Тип файла: zip blink.zip (212 байт, Просмотров: 11)
    Последний раз редактировалось ozforester; 25.01.2023 в 04:16.


  2. #1432

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    914
    Позывной
    LZ2WSG
    ATtiny13A с MicroCore к Arduino IDE. "Сон" по кнопку "power on/off" ("глубокий сон": все остановлено ).

    При "пробуждении" хотел "сброса МК" (из-за возможного долгого стояния sleep (дни, месяцы) не могу рассчитывать на корректно сохраненные данные в RAM-памяти. Предпочитаю получать их из EEEPROM с первоначальным установлением периферии). Долгий поиск для методов софт-ресета, со множеством проб.

    Этот начин сработал. Теперь работает как кнопочный Т-триггер: работает (нагрузка потребляет ток) / не работает (нет потребления, ток как по документации без watchdog, даже не могу реально измерить).
    Код:
            sei();
            WDTCR &= ~(1 << WDTIE);               // disable watchdog timer interrupt
            set_sleep_mode(SLEEP_MODE_PWR_DOWN);  // sleep
            sleep_enable();
            sleep_cpu();
            //----------
            sleep_disable();          // wake up
            WDTCR |= (1 << WDTIE);    // enable watchdog timer interrupt
            asm volatile ("rjmp 0");  // soft reset
    Другие возможные пути?
    Последний раз редактировалось veso74; 14.02.2023 в 20:54.

  3. #1433

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    528
    Джам на 0, это джам на джам на начало программы. Нет ресета реального, у регистров нет начального состояния и т.п. Я бы попробовал после пробуждения разрешить вотчдогу ресет с небольшим прескалером и уйти в реальный ресет. Если нужно знать по вотчдогу или по питанию был ресет, есть специальный бит у вотчдога в одном из котрольных регистров. (не помню на память, но разделы ресета и вотчдога в даташите короткие) Если в еепром сохраняются данные, то можно и по еепрому дселать вывод был ли ресет. Если у вотчдога разрешить прерывание и ресет, то можно сначала обработать прерывание и по выходу из него ресетнуться. Из такого "последнего" прерывания, наверное, можно и еепром записать тоже.

    Вот откуда это в памяти застряло
    Нажмите на изображение для увеличения. 

Название:	Screenshot_2023-02-14_23-07-08.jpg 
Просмотров:	15 
Размер:	44.4 Кб 
ID:	385006
    Последний раз редактировалось ozforester; 14.02.2023 в 23:11.

  4. #1434

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    914
    Позывной
    LZ2WSG
    Да, с rjmp было понятно, било первое рабочее решение.
    ---
    Код:
            sei();
            set_sleep_mode(SLEEP_MODE_PWR_DOWN);  // sleep
            sleep_enable();
            sleep_cpu();
            //----------
            sleep_disable();  // wake up
            wdt_enable(WDTO_60MS);
    и в самом начале:
    MCUSR = 0;
    wdt_disable();
    Работает. МК и периферия не потребляют ток в состоянии покоя.

  5. #1435

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    528
    Ну, да. Если быть точным, то схема ресета, таймер вотчдога и энергосбережение это всё таки разные сущности, хотя и тяготеют друг к другу. Я понял пост, что необходим физический ресет по схеме, и так как ног у этого мк мало, то вырисовывается только вотчдог. Да, его нужно выключать перед сном, но после пробуждения и запрета сна, можно сконфигурить по нему ресет, ребутнуться, отметиться, что ресет прошел успешно, и опять запретить или там прескалер сменить на нужный и оставить лишь прерывание. Затем можно читать еепром и до следующего цикла сна выполнять задачи. Примерно так.

    Скрытый текст

    На недвних rtc-часах без вочдога обошелся в итоге, просто счетчик ставил в главном цикле, не хватало пары байтов. Вотчдог чуть больше команд требовал. А будил по int0, той же кнопкой что устанавливают календарь. Потому и не успел ещё забыть эти разделы даташита (:


  6. #1436

    Регистрация
    12.09.2006
    Адрес
    Болгария, Силистра, KN34PC
    Сообщений
    914
    Позывной
    LZ2WSG
    Нет, достаточно запустить программу сначала, с новой инициализацией периферии, потому что периферия остановлена ​​(по питанию, на меньший ток, иначе тоже есть sleep, но потребляет тока) во время сна. Радио на FM-модуль. У EEPROM: последняя использованная радиочастота и усиления. Пока одна кнопка (on/off). Остальные функции (и кнопки) проверены во временем. МК не так сильно потребляет ток, что тоже засыпает после какой-либо функции, но это тоже вариант. Просто эксперименты .
    Последний раз редактировалось veso74; 15.02.2023 в 00:30.

  7. #1437

    Регистрация
    14.06.2018
    Адрес
    Санкт-Петербург
    Сообщений
    528
    Еще иногда можно у вектора вотчдога указать ресет-вектор, и если программа "тупит" то будет начинаться с начала, а не рестаротвать и дергать ногами. Иногда актуально. Про эксперименты понятно. Я иногда на очевидный вопрос пропускаю ответ и отвечаю на такой же интересный ближайший, пока это не начинает раздражать (:

Страница 144 из 144 ПерваяПервая ... 4494134141142143144

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Микроконтроллеры PIC
    от R2DAD в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 86
    Последнее сообщение: 11.02.2023, 06:59
  2. СОМ порт и микроконтроллеры
    от alex74 в разделе Технический кабинет
    Ответов: 1
    Последнее сообщение: 31.03.2008, 11:04

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •