Увеличить битовое разрешение ШИМ только на одном выходе таймера 2.

pwm

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

Ардуино Уно

У меня есть ШИМ с приводом от двигателя, выход 10 отключен, а выход 9 используется для дисплея. Могу ли я изменить разрешение выхода 10 только на 16 бит? или оба выхода необходимо будет использовать в качестве ШИМ при изменении таймера со 2 на 16 бит? Все примеры кодирования, которые я вижу, предназначены для изменения обоих выходов.

, 👍1

Обсуждение

Извините, я не знаком с библиотеками ШИМ в рамках Arduino, но я просмотрел [техническое описание микроконтроллера](http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel- 42735-8-bit-AVR-Microcontroller-ATmega328-328P_Datasheet.pdf), и, похоже, существует способ управлять 16-битной ШИМ на выводе 9 (OC1A), сохраняя при этом нормальную работу порта на выводе 10 (OC1B). Если вы хотите настроить таймер вручную, обратитесь к таблице 20-4 на стр. 170 технического описания. К сожалению, это довольно увлекательно. Возможно, для этого есть библиотека., @ex-punctis

Я думаю, что согласен с вами, после прочтения таблицы данных, поэтому я просто перемонтирую плату и не буду использовать выходной контакт 9. Если у меня будет немного времени, я проведу некоторое тестирование с вариациями, но сейчас у меня нет времени. Благодарю вас за информацию!, @user49780

@user49780 user49780, прочитайте обновленный ответ Гербена, @Juraj

Вы имеете в виду «Таймер 1». Оба выхода 9 и 10 управляются Таймером 1, а не Таймером 2., @Edgar Bonet

Да, вы правы, я имел в виду таймер 1., @user49780


1 ответ


1

Пока вы не используете ШИМ (т. е. аналоговую запись) на контакте 9, любые изменения, внесенные в таймер 1, не повлияют на контакт 9.

Это изменит оба выхода, поскольку оба используют один и тот же (один) таймер.

Но вы можете использовать код для преобразования 8-битного значения ШИМ в 16-битное значение, просто умножив 8-битное значение на 256.

,

Название вводит в заблуждение. Я не думаю, что вопрос заключался в том, можно ли установить разное разрешение ШИМ на 9 и 10. Я понимаю вопрос так, что один из контактов 9 и 10 должен быть ШИМ, а второй - простой цифровой контакт. (Я не отрицающий голос), @Juraj

@Юрай, я думаю, ты можешь быть прямо здесь., @Gerben

Некоторые вещи, которые я читал об изменении режима таймера с 1 на 16-битный, создавали впечатление, что контакты 9 и 10 тогда можно было использовать только для ШИМ. Конечно, это казалось неправильным, но я не смог найти ничего четкого ответа. С тех пор я перемонтировал проект, чтобы не использовать контакт 9, если это правда. Когда-нибудь я выясню это с помощью некоторых тестов. Сейчас на это мало времени. У меня есть новая проблема, которую я пытаюсь решить. Это связано с масштабированием. Он не работает должным образом. Но я изучу это подробнее, прежде чем создавать новую тему, если не смогу разобраться., @user49780

Биты COM1A1 и COM1A0 в TCCR1A включают ШИМ на выводе 9. Пока вы оставите их на уровне «0», вывод 9 будет действовать как обычный вывод GPIO., @Gerben