summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorvlapa <vlapa@ya.ru>2026-06-13 17:42:57 +0300
committervlapa <vlapa@ya.ru>2026-06-13 17:42:57 +0300
commit4bf12876caede567affeeeb410a778a1963acef9 (patch)
tree1ccd0893c785c636cbb35322abeca52f3255dce2 /src/main.cpp
First
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
new file mode 100644
index 0000000..0772645
--- /dev/null
+++ b/src/main.cpp
@@ -0,0 +1,40 @@
+#include <avr/io.h>
+#include <util/delay.h>
+
+#define F_CPU 9600000UL
+#define PIN_OUTPUT PB0
+#define TIME_WORK 15 // минут
+#define TIME_PAUSE 25 // минут
+
+// Макрос для задержки на указанное количество минут
+#define DELAY_MINUTES(min) \
+ do \
+ { \
+ for (uint16_t m = 0; m < (min); m++) \
+ { \
+ for (uint16_t s = 0; s < 60; s++) \
+ { \
+ _delay_ms(1000); /* 1 секунда */ \
+ } \
+ } \
+ } while (0)
+
+int main(void)
+{
+ // Отключаем АЦП и компаратор
+ ADCSRA &= ~(1 << ADEN);
+ ACSR |= (1 << ACD);
+
+ // Настройка пинов
+ DDRB |= (1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB4);
+ PORTB &= ~((1 << PB0) | (1 << PB1) | (1 << PB2) | (1 << PB3) | (1 << PB4));
+
+ while (1)
+ {
+ PORTB |= (1 << PIN_OUTPUT); // LED ON
+ DELAY_MINUTES(TIME_WORK); // 15 минут
+
+ PORTB &= ~(1 << PIN_OUTPUT); // LED OFF
+ DELAY_MINUTES(TIME_PAUSE); // 25 минут
+ }
+} \ No newline at end of file