Добавить timers.h
This commit is contained in:
parent
9703f5efc0
commit
40bd72bc4d
83
timers.h
Normal file
83
timers.h
Normal file
@ -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<<dPos);
|
||||
} // 0
|
||||
else
|
||||
{
|
||||
data[dNum] |= (1<<dPos);
|
||||
} // 1
|
||||
dPos--;
|
||||
if ( dPos < 0)
|
||||
{
|
||||
dPos=7; dNum++;
|
||||
}
|
||||
}
|
||||
if ( dht_save_time_id == 42 )
|
||||
{
|
||||
interrupt_flag++;
|
||||
dht_check_act = true;
|
||||
dht_done = true;
|
||||
|
||||
DHT_DDR |= (1 << DHT_BIT); // Пин как выход
|
||||
DHT_PORT |= (1 << DHT_BIT); // Выход HIGH
|
||||
}
|
||||
|
||||
}
|
||||
// Прерывание таймера
|
||||
ISR(TIMER0_COMPA_vect)
|
||||
{
|
||||
TCNT0 = 0;
|
||||
dht_en_timer++;
|
||||
if ( dht_en_timer >= 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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user