76 lines
1.5 KiB
C
76 lines
1.5 KiB
C
#include <avr/interrupt.h>
|
||
#include <avr/io.h>
|
||
//#define F_CPU 1000000UL
|
||
|
||
// Определения портов и битов
|
||
#define DHT_PORT PORTB
|
||
#define DHT_DDR DDRB
|
||
#define DHT_PIN PINB
|
||
#define DHT_BIT 0
|
||
|
||
// Глобальные переменные
|
||
unsigned char data[5];
|
||
byte dt[48];
|
||
byte dtcnt;
|
||
|
||
|
||
float temperature, humidity;
|
||
int enc_val, last_enc_val;
|
||
float last_temperature, last_humidity;
|
||
|
||
// Флаг прерывания
|
||
volatile unsigned char interrupt_flag = 1;
|
||
bool dht_check_act = false;
|
||
bool dht_done = false;
|
||
int dht_check_icp;
|
||
|
||
byte dht_state, dht_last_state;
|
||
int T1time, dPos, dNum;
|
||
|
||
//int dht_save_time[42];
|
||
int dht_save_time_id;
|
||
|
||
// Таймер для задержки
|
||
volatile unsigned int timer_counter = 0;
|
||
int dht_en_timer=0;
|
||
|
||
void PrintDebug();
|
||
|
||
#include "timers.h"
|
||
#include "dht.h"
|
||
#include "enc.h"
|
||
// Настройка
|
||
void setup()
|
||
{
|
||
// Инициализируем UART
|
||
Serial.begin(57600);
|
||
encoder_setup();
|
||
// Настраиваем таймер
|
||
setup_timer();
|
||
|
||
// Разрешаем прерывания
|
||
sei();
|
||
Serial.println("Start system");
|
||
delay(10);
|
||
DDRD = 0b10000000;
|
||
}
|
||
|
||
// Основной цикл
|
||
void loop()
|
||
{
|
||
|
||
// Читаем данные с DHT
|
||
dht_check();
|
||
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+"] ");
|
||
}
|
||
} |