70 lines
1.2 KiB
C
70 lines
1.2 KiB
C
#include <avr/interrupt.h>
|
||
#include <avr/io.h>
|
||
//#define F_CPU 1000000UL
|
||
|
||
int enc_val, last_enc_val;
|
||
long dht_Draw_idle=0;
|
||
bool dht_enabled = false;
|
||
|
||
#include "dht.h"
|
||
#include "enc.h"
|
||
|
||
ISR(TIMER1_CAPT_vect)
|
||
{
|
||
TCNT1 = 0;
|
||
DHT_get_bit();
|
||
}
|
||
|
||
// Прерывание таймера
|
||
ISR(TIMER0_COMPA_vect)
|
||
{
|
||
T0_CA();
|
||
}
|
||
|
||
// Прерывание TIMER0_COMPA_vectтаймера
|
||
ISR(TIMER1_COMPA_vect)
|
||
{
|
||
T1_CA();
|
||
}
|
||
|
||
// Настройка
|
||
void setup() {
|
||
// Инициализируем UART
|
||
Serial.begin(57600);
|
||
encoder_setup();
|
||
// Настраиваем таймер
|
||
setup_timer();
|
||
|
||
// Разрешаем прерывания
|
||
sei();
|
||
Serial.println("Start system");
|
||
delay(10);
|
||
DDRD = 0b10000000;
|
||
}
|
||
|
||
// Основной цикл
|
||
void loop() {
|
||
|
||
// Читаем данные с DHT
|
||
dht_enabled = dht_check();
|
||
|
||
if ( dht_enabled ){
|
||
Serial.print( dht_humidity() );
|
||
Serial.print("% ");
|
||
Serial.print( dht_temperature() );
|
||
Serial.println("C");
|
||
}
|
||
enc_val = encoder_value();
|
||
bool Draw = false;
|
||
|
||
if (enc_val != last_enc_val) {
|
||
Draw = true;
|
||
last_enc_val = enc_val;
|
||
}
|
||
|
||
if (Draw) {
|
||
Serial.println("Enc [" + (String)enc_val + "] ");
|
||
}
|
||
|
||
|
||
} |