From 40bd72bc4d51a71087aadd40acc6c11c1759dd94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9D=D0=BE=D0=B2=D0=B8?= =?UTF-8?q?=D0=BA=D0=BE=D0=B2?= Date: Thu, 29 Feb 2024 10:33:29 +0000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20timers.h?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- timers.h | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 timers.h diff --git a/timers.h b/timers.h new file mode 100644 index 0000000..6562610 --- /dev/null +++ b/timers.h @@ -0,0 +1,83 @@ +ISR(TIMER1_CAPT_vect){ + TCNT1 = 0; + dht_save_time_id++; + + if ( dht_save_time_id > 3 ) + { + dt[dtcnt] = ICR1<<8; + dtcnt++; + if ( ICR1<1500 ) + { + data[dNum] &= ~(1<= 65) + { + dht_en_timer =0; + dht_done = false; + dtcnt=0; + interrupt_flag = 1; + dht_check_act = true; + DHT_DDR |= (1 << DHT_BIT); // Пин как выход + DHT_PORT |= (1 << DHT_BIT); // Выход HIGH + dht_save_time_id = 0; + } +} + +// Прерывание таймера +ISR(TIMER1_COMPA_vect) +{ + TCNT1 = 0; + dht_check_act = true; + TCCR1B = 0b00000000; + if ( interrupt_flag < 3 ) + { + interrupt_flag++; + } +} + + +// Установка таймера +void setup_timer() +{ + // Настраиваем таймер 1 в режиме CTC + TCCR0B = 0b00000101; + // Устанавливаем значение сравнения для частоты 1 Гц + OCR0A = 250; + // Разрешаем прерывание сравнения A + TIMSK0 |= (1 << OCIE0A); + + // Настраиваем таймер 1 в режиме CTC + TCCR1A = 0b00000000; + TCCR1B = 0b00000000; + // Устанавливаем значение сравнения для частоты 1 Гц + OCR1A = 250; + // Разрешаем прерывание сравнения A + TIMSK1 = 0b00100010; +} + \ No newline at end of file