Я не совсем понял Ваше сообщение. Эта запись - настройки регистров Т1 должны вызываться в case оператора switch (не понял только почему TCCR1A &= ~(1 << COM1A1);TCCR1A |= (1 << COM1A0) ведь это для счетчика 1А, а у меня 1В и выход соответственно РВ2) , но проблема в том что счетчик вообще не работает. Попробуйте запустить в протеусе. Спасибо что помогаете новичку
С кодом выше работает счетчик 1А к РВ1. Прежде чем написать свое сообщении, проверил (только case 2). За другими вариантами (счетчик 1B, к RB2) нет возможности проверять.
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Работают оба при условии если значение OCRA будет больше значения OCRВ… при том что значение OCRВ будет влиять только на временной интервал начиная от наступления прерывания по OCRA… но временной период прерываний OCRВ будет зависеть только от значения OCRA… если же значение OCRA будет меньше значения OCRВ, то прерывание по OCRВ отработает единожды в самом начале старта программы и всё… Витиевато наверное описал данную ситуацию работы, но надеюсь поймёте суть сказанного…
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Как переадресовать сигнал выхода таймера(например OC1A -PB1) на другой пин, например PB4 ATMEGA 328P. Просто печатка уже готова и получена, но пришлось изменить код. Спасибо.
Я бы задействовал прерывание Timer_1_Compare_Match_A, а в нём переключал бы пин РВ4.
ЗЫ. Вот тестовый вариант с использованием шильда ардуины… вместо РВ4 задействован вывод РВ5 (светодиод на шильде)… соответственно к выводу РВ1 тоже нужно подключить светодиод… тем самым можно увидеть параллельную работу данных выходов…
Cделал с помощью прерывания. Все работает, правда после, примерно, 40гц начинается рассинхронизация(отставание от первичного сигнала). Но мне достаточно 30гц, поэтому дальше я не экспериментировал с прерываниями.
Cделал с помощью прерывания. Все работает, правда после, примерно, 40гц начинается рассинхронизация(отставание от первичного сигнала). Но мне достаточно 30гц, поэтому дальше я не экспериментировал с прерываниями.
Используйте прерывания по сравнению и переполнению. Используйте ассемблерные вставки, тогда у вас в стек только адрес программы с момента вызова будет сохраняться. В прерывании по сравнению бит очищайте одной командой, cbi, в прерывании по переполнению бит устанавливайте, sbi. Так можно избежать проверок и, соответственно, запаздывания.
Разве есть в этом разница? Ведь при старте программы вначале происходит вся настройка конфигурации элементов, а уже затем выполняется основной алгоритм программы… и если что-то там сбрасывается, то оно всё равно будет восстановлено… Или у кого-то делается иначе?
akl, спасибо! С АЦП понятно: после сброса регистр управления оказывается в дефолтном состоянии (нули в битах), что сбрасывает предделитель частоты: Спойлер Не совсем понятно, что означает вход START, запуск одиночного (или первого в серии) преобразования? Звучит логично, но комментариев к этому в даташите не нашёл.
А что, собственно, с таймерами? У их предделителя нет аппаратного сброса, только ручной? Содержимое ресэт выживает?
Добавлено after 43 minutes 3 seconds: VNS, Смысл в том, чтобы и программа, и железо работало один-в-один после каждого ресэта, вне зависимости от того, в первый раз или в энный. Чтобы это реализовать, хочу в доскональности понять поведение чипа и компонентов на нём.
чтобы и программа, и железо работало один-в-один после каждого ресэта, вне зависимости от того, в первый раз или в энный. Чтобы это реализовать, хочу в доскональности понять поведение чипа и компонентов на нём.
Если все настройки производить будете сразу после старта, то отпадёт надобность чего-то там выяснять, так как при любом раскладе вначале выполняется конфигурация нужных элементов, а уже затем начинает выполнятся основная программа алгоритма… ежели Вы делаете по другому, то увеличиваете шанс сделать ошибку по незнанию или просто по невнимательности… а оно Вам надо?
А ещё тут вопрос в какие моменты времени что происходит. Вот, например, АЦП: если на схеме START означает запуск преобразования, то моменты "тиканья" АЦП будут происходить с одним смещением от выключения RESET. А если это означает что-то другое, то время будет отсчитываться от момента включения АЦП (смещение относительно RESET будет зависеть от момента запуска первого преобразования). Можно, конечно, реализовать включение и запуск АЦП одной командой (благо, что всё это запрятано в один регистр и работает), но хотелось бы более полного знания, на случай, когда такое решение не подходит.
Добавлено after 2 minutes 33 seconds: VNS, повторюсь ещё раз: хотелось бы знать, как работает предделитель таймеров, есть ли у него "железный" сброс? Буду очень благодарен ответу на этот вопрос.
Сейчас этот форум просматривают: BOB51 и гости: 28
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения