Flash6300 Опубликовано 19 ноября, 2017 Поделиться Опубликовано 19 ноября, 2017 Приветствую всех. Как на 2313 рассчитать значение для записи в эти регистры, если я хочу получить задержку в 6 секунд? OCR1AH OCR1AL TCCR1B 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
igor_ryzhov Опубликовано 19 ноября, 2017 Поделиться Опубликовано 19 ноября, 2017 Можно установить TCCR1B |=(1 << CS12)|(1 << CS10); // :1024; OCR1A = 46875, при f_clk = 8000000гц. Но при этом будет небольшая погрешность, так как 800000/1024 = 7812.5, либо использовать дополнительную переменную для подсчета количества переполнений таймера при меньшем делителе таймера, либо понизить тактовую частоту контроллера 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
20% скидка на весь каталог электронных компонентов в ТМ Электроникс!Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!Перейти на страницу акции Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849
Flash6300 Опубликовано 19 ноября, 2017 Автор Поделиться Опубликовано 19 ноября, 2017 откуда вы взяли OCR1A = 46875 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторовОбязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей. Подробнее>>Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161
igor_ryzhov Опубликовано 19 ноября, 2017 Поделиться Опубликовано 19 ноября, 2017 7812*6сек = 46872 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Flash6300 Опубликовано 19 ноября, 2017 Автор Поделиться Опубликовано 19 ноября, 2017 Спасибо, а что такое CS в этой строке? TCCR1B |=(1 << CS12)|(1 << CS10) 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
igor_ryzhov Опубликовано 19 ноября, 2017 Поделиться Опубликовано 19 ноября, 2017 биты, отвечающие за настройку делителя таймера 1 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Flash6300 Опубликовано 19 ноября, 2017 Автор Поделиться Опубликовано 19 ноября, 2017 void timer_ini(void) { TIMSK = 0b01000000; OCR1AH = 0xb7; OCR1AL = 0x1b; TCCR1B = 0b00000010; TCCR1B |=(1<<WGM12); } То есть код программы будет выглядеть так? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
demiurg1978 Опубликовано 24 ноября, 2017 Поделиться Опубликовано 24 ноября, 2017 (изменено) Задержки от единиц мс нужно делать на программных таймерах. Вкратце. Таймер настраивается на тик. Значение зависит от проекта и требуемых минимальных задержек на программных таймерах. 1 мс, 10 мс, 100 мс. Нужное значение кладем в регистр совпадения. Включаем прерывание по совпадению. В прерывании переменная-счетчик считает тики. В основном цикле считываем значение переменной-счетчика, прибавляем к ней нужное количество тиков. Как только накрутило нужное время, что-то делаем. Изменено 24 ноября, 2017 пользователем demiurg1978 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
BARS_ Опубликовано 24 ноября, 2017 Поделиться Опубликовано 24 ноября, 2017 В 19.11.2017 в 12:24, Flash6300 сказал: такое CS в этой строке? Прочесть даташит не судьба? 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.