Перейти к содержанию

Вопросы от начинающих по МК


Рекомендуемые сообщения

При присвоении переменной значение регистра, имена не передаются. Поэтому в переменной нужно указывать номер бита в который вы записываете одно из двух значений. А если вы записываете в сам регистр, то можете использовать имена.

И вообще зачем помещать в переменную значение регистра отвечающего за настройку???

Работайте напрямую с регистром, так удобнее

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

  • Ответов
  • Создана
  • Последний ответ

Топ авторов темы

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Надо только концепцию понять. "a<<b" это простая до безобразия логическая функция! Которая означает побитовый сдвиг влево числа a на b бит. Ни больше ни меньше. Функция простая как автомат калашникова или гениальное изобретение ниппель.

частный случай когда a = 1, означает что результатом будет число с единственным установленным в 1 битом b.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Вот поэтому запись должна иметь вот такой вид

ADMUX |= (1<<MUXn)

Это если ооочень хочется поменять значение определенного бита

Изменено пользователем Viktor26

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

Хочу спросить,когда прописываю (1<<MUX1)... то как переменная under определит названия битов для ADMUX,при присвоении их названия тоже передаются?или МUX1 всегда равен 1?

Названия битов и соответствие их числовым значениям в байте, прописаны в подключаемом файле. А уж компилятор сам подставляет числовые значения, соответствующие вашим, строковым.

Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте, помогите пожалуйста, нужно быстренько прошить мк atmega328p tqfp для китайского тестера, с доставкой вопрос решу сам. кто сможет? прошивку скину

Ссылка на комментарий
Поделиться на другие сайты

Вот поэтому запись должна иметь вот такой вид

ADMUX |= (1<<MUXn)

Это если ооочень хочется поменять значение определенного бита

Это удобно для наглядности. Причем так можно записывать сразу несколько битов нужного нам регистра РВВ, одной командой.

А так используются стандартные команды для установки/сброса нужных битов)

Ссылка на комментарий
Поделиться на другие сайты

Судя по картинке выше, точки у него принципиально не реализованы. Только по 7 анодов... куда ж там место точкам? для точек нужны еще два вывода...

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

ого, не думал, что так бывает, я думал там надо на какую то особую комбинацию подать

ну спасибо за подсказку)

Изменено пользователем AlexAlex9417
Ссылка на комментарий
Поделиться на другие сайты

Подскажите, вот надумал сделать БП с регулировкой максимального тока и напряжения, ну как бы и блок питания и зарядное все в одном, для красоты (да и для опыта) хочу сделать на МК. Все встало на алгоритме взаимодействия - чтобы не городить лишнего управлять ключами импульсника хочу с МК, замерять ток и напряжение двумя АЦП из него, а настройку тока и напряжения производить энкодерами с индикацией на дисплее фактических и установленных значений. как правильно выстроить алгоритм работы? просто пока АЦП подготовит данные нужно ждать, пока дисплей отрисует тоже нужно ждать, читать данные с энкодеров и параллельно со всем этим по рассчитанным параметрам качать импульсник, как это все совместить вообще сообразить не могу подскажите пожалуйста

Не судите строго)

Ссылка на комментарий
Поделиться на другие сайты

пока АЦП подготовит данные нужно ждать
Обычно нет
пока дисплей отрисует тоже нужно ждать
Зависит от дисплея, обычно да, но можно оставить в основном цикле, так как скорость не важна.
читать данные с энкодеров
Зависит от алгоритма, но логика подсказывает запихнуть в таймер для точности.
по рассчитанным параметрам качать импульсник
Опять таки для точности лучше по таймеру, но, конечно, никаких тяжеловесных вычислений там не делать.
как это все совместить вообще сообразить не могу подскажите пожалуйста
Так же, как любое другое "распараллеливание" нескольких задач на одном контроллере. Для начала могу посоветовать реализовать каждый из модулей по отдельности, но без привязки к скорости работы бесконечного цикла.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

готовый проект по измерению и выводу на экран можете найти в цикле видеоуроков от KOBZAR на этом форуме, и остается шим прикрутить для ключей и энкодер. Шим-легко, а энкодер с учетом библиотек из сети, тоже не трудно

Не знаеш как? Спроси у Google'а !!!

Ссылка на комментарий
Поделиться на другие сайты

чтобы не городить лишнего управлять ключами импульсника хочу с МК

Вот этого делать не советую. Специализированный контроллер справится с этим гораздо лучше.

Никогда не спорьте с дураком - люди могут не заметить между вами разницы

Ссылка на комментарий
Поделиться на другие сайты

Опять таки для точности лучше по таймеру, но, конечно, никаких тяжеловесных вычислений там не делать.

Так же, как любое другое "распараллеливание" нескольких задач на одном контроллере. Для начала могу посоветовать реализовать каждый из модулей по отдельности, но без привязки к скорости работы бесконечного цикла.

Из вычислений думаю там много не придется считать - сравнивать значение текущее и необходимое, если больше то уменьшать частоту на одну позицию если меньше то увеличить, сей час занимаюсь как раз тем что делаю все по частям, спасибо, посмотрю уроки от KOBZAR измерение и вывод на дисплей уже два ответа на мои вопросы)

Не судите строго)

Ссылка на комментарий
Поделиться на другие сайты

В МК очень тормознутый АЦП для этих целей. Он у тебя просто не будет успевать за изменением напряжения на выходе, в итоге будет очень затянутый переходный процесс.

Первое что нужно сделать это рассчитать аналоговую часть схемы и определить пределы её устойчивости как регулятора.

Время измерения АЦП известно - его можно использовать в модели по которой будет рассчитан регулятор. С учетом того что надо измерять как минимум два канала - напряжение и ток. Кстати это тоже проблема, т.к. измерения эти будут несинхронны то с определенным типом нагрузки такой блок питания может пойти в разгон...

Делают обычно такие вещи совсем по другому. Используют ЦАП(на матрицах R-2R и регистрах сдвига очень прекрасно выходит) разрешением на несколько ступеней выше чем необходимо(14...16 бит как правило выше крыши) и просто выдают аналоговые уровни в аналоговую часть схемы, которая работает чисто с напряжением. Тогда требования к контроллеру резко сокращаются, прошивка становится предельно простой - максимум что контроллер может измерять реальные значения выходного напряжения чтобы отслеживать аварийные ситуации, но уже не в реальном времени.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

Специализированный контроллер справится с этим гораздо лучше.

Не сомневаюсь в этом, но такие схемы есть, а вот таких как я задумал еще не встречал. Опять же, для опыта, на МК делал максимум мигалки всякие и линейку светодиодов зажигал в зависимости от уровня на АЦП, а здесь я разберусь наконец таки с дисплеями, с ШИМ, с полноценным измерением с помощью АЦП, с энкодерами, пусть просижу не одни выходные зато в голове отложится.

Кстати изначально боялся серьезно встрять с ШИМ, и хотел взять 8и битный ЦАП подключить к порту целиком и рулить контроллером ШИМ при помощи него, но это как то наверное глупо бы выглядело

Не судите строго)

Ссылка на комментарий
Поделиться на другие сайты

Ничуть не глупо. Хотя, зачем занимать целый порт.... Медленный ЦАП можно подключить через регистры сдвига, их можно нацеплять хоть на 128 бит. Простой вариант ЦАП-а достаточный для реализации блока питания строится на основе обычной R-2R матрицы, где необходимо лишь N резисторов сопротивлением R и столько же резисторов сопротивлением в 2*R где R - любой разумный номинал, например 1К или 10К а N -разрядность в битах.

Учение - изучение правил. Опыт - изучение исключений.

Ссылка на комментарий
Поделиться на другие сайты

такие схемы есть, а вот таких как я задумал еще не встречал

А вы вообще, когда нибудь собирали нормальный импульсник?

Никогда не спорьте с дураком - люди могут не заметить между вами разницы

Ссылка на комментарий
Поделиться на другие сайты

Нормальные не собирал, если не считать того что взял компьютерный БП и прикрутил туда регулятор тока и напряжения к ШИМ контроллеру

А вот допустим я сей час соберу в кучу всю информацию почитаю про особенности импульсников, откажусь все таки от идеи с ШИМ на МК а использую ЦАП из регистров сдвига и резисторов, какие неприятности меня будут ждать при его использовании? Всплески напряжения при отключении нагрузки, провалы при включении, пульсации напряжения из за "долгодумающих" АЦП, а что еще?

Не судите строго)

Ссылка на комментарий
Поделиться на другие сайты

В МК очень тормознутый АЦП для этих целей.

15'000 выборок в секунду это тормознутый? Это при максимальной точности, а при максимальном быстродействии до 700'000 выборок в секунду. На встроенном в AVR модуле АЦП с разрешением 10 разрядов.

Ругался на отсутствие форматирования исходного кода (включая отсутствие осмысленных комментариев и наличие неубранного после конфигуратора мусора) не менее 15 раз.

Часть моих наработок.

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы публикуете как гость. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...