8.Master_I2C_PWM/main.cpp
2023-03-27 15:07:32 +03:00

38 lines
1.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// определяем пины, к которым подключена кнопка и ШИМ
#define BUTTON_PIN 2
#define PWM_PIN 9
// определяем регистры ШИМ
#define TCCR1A_REG 0x80
#define TCCR1B_REG 0x81
#define OCR1A_REG 0x88
void setup() {
// настраиваем пин кнопки на вход с подтягивающим резистором
pinMode(BUTTON_PIN, INPUT_PULLUP);
// настраиваем пин ШИМ на выход
pinMode(PWM_PIN, OUTPUT);
// устанавливаем настройки ШИМа
TCCR1A = 0x82; // настройки регистра TCCR1A (включаем Fast PWM, устанавливаем режим non-inverting)
TCCR1B = 0x11; // настройки регистра TCCR1B (выбираем источник тактирования и устанавливаем prescaler)
OCR1A = 0x0000; // устанавливаем начальное значение ШИМа
}
void loop() {
// считываем состояние кнопки
bool buttonState = digitalRead(BUTTON_PIN);
// если кнопка нажата, включаем ШИМ
if (buttonState == LOW) {
// устанавливаем значение ШИМа
OCR1A = 0x0FFF;
}
// если кнопка не нажата, выключаем ШИМ
else {
// устанавливаем значение ШИМа в 0
OCR1A = 0x0000;
}
}