saved some bytes
This commit is contained in:
95
main.cpp
95
main.cpp
@ -8,6 +8,7 @@
|
||||
#include "watchdog.h"
|
||||
#include "softspim.h"
|
||||
#include "BMP280.h"
|
||||
#include "comperator.h"
|
||||
|
||||
#define TEMP_SENSOR_DATA PB4
|
||||
#define TRANSMITTER_DATA PD0
|
||||
@ -15,10 +16,12 @@
|
||||
#define POWER_PIN PD5
|
||||
#define LED_PIN PD1
|
||||
|
||||
EMPTY_INTERRUPT( WDT_OVERFLOW_vect);
|
||||
EMPTY_INTERRUPT(WDT_OVERFLOW_vect);
|
||||
|
||||
static constexpr uint8_t id = 1;
|
||||
static constexpr uint8_t id = 3;
|
||||
static constexpr bool WATCH_DOOR = false;
|
||||
static constexpr bool BMP_280 = false;
|
||||
static constexpr bool DHT22 = true;
|
||||
|
||||
|
||||
static void power(const bool power)
|
||||
@ -27,16 +30,25 @@ static void power(const bool power)
|
||||
{
|
||||
PORTD |= 1 << POWER_PIN | 1 << LED_PIN;
|
||||
DDRD = 1 << POWER_PIN | 1 << LED_PIN | 1 << TRANSMITTER_DATA;
|
||||
DDRB = 1 << PB0 | 1 << PB1 | 1 << PB3;
|
||||
DDRB = 1 << PB0 | 1 << PB3;
|
||||
}
|
||||
else
|
||||
{
|
||||
PORTD &= ~(1 << POWER_PIN | 1 << LED_PIN | 1 << TRANSMITTER_DATA);
|
||||
//DDRD &= ~(1 << TRANSMITTER_DATA);
|
||||
DDRB = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void debugBlink(bool fast = true)
|
||||
{
|
||||
_delay_ms(100);
|
||||
if(!fast) _delay_ms(200);
|
||||
PORTD &= ~(1 << LED_PIN);
|
||||
_delay_ms(100);
|
||||
if(!fast) _delay_ms(200);
|
||||
PORTD |= 1 << LED_PIN;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
|
||||
@ -49,53 +61,88 @@ int main()
|
||||
//Transmitter and transmiter power
|
||||
W433DataTransmitter transmiter(&PORTD, TRANSMITTER_DATA);
|
||||
|
||||
Comperator comp;
|
||||
|
||||
sei();
|
||||
|
||||
wdt_set(WDTO_8S);
|
||||
set_sleep_mode(SLEEP_MODE_PWR_DOWN);
|
||||
|
||||
uint8_t couter = 50;
|
||||
uint8_t couter = 200;
|
||||
|
||||
while(true)
|
||||
{
|
||||
if(++couter > 1)
|
||||
if(++couter > 80)
|
||||
{
|
||||
couter = 0;
|
||||
|
||||
power(true);
|
||||
_delay_ms(2000);
|
||||
comp.on();
|
||||
for(uint8_t i = 0; i < 20; ++i)
|
||||
{
|
||||
debugBlink();
|
||||
}
|
||||
PORTD &= ~(1 << LED_PIN);
|
||||
|
||||
uint32_t paketUint;
|
||||
uint8_t * const paket = reinterpret_cast<uint8_t*>(&paketUint);
|
||||
paket[1] = id;
|
||||
|
||||
|
||||
//temperature sensor
|
||||
tempSensor.read();
|
||||
uint8_t paket[4];
|
||||
paket[0] = 1;
|
||||
paket[1] = id;
|
||||
paket[2] = tempSensor.temperature >> 8;
|
||||
paket[3] = tempSensor.temperature;
|
||||
transmiter.send(paket, 4);
|
||||
if constexpr (DHT22)
|
||||
{
|
||||
debugBlink(false);
|
||||
uint8_t readret;
|
||||
readret = tempSensor.read();
|
||||
paket[0] = 1;
|
||||
paket[2] = tempSensor.temperature >> 8;
|
||||
paket[3] = tempSensor.temperature;
|
||||
transmiter.sendPacket(paketUint);
|
||||
}
|
||||
|
||||
//humidity sensor
|
||||
paket[0] = 2;
|
||||
paket[2] = tempSensor.humidity >> 8;
|
||||
paket[3] = tempSensor.humidity;
|
||||
transmiter.send(paket, 4);
|
||||
if constexpr (DHT22)
|
||||
{
|
||||
debugBlink(false);
|
||||
paket[0] = 2;
|
||||
paket[2] = tempSensor.humidity >> 8;
|
||||
paket[3] = tempSensor.humidity;
|
||||
transmiter.sendPacket(paketUint);
|
||||
}
|
||||
|
||||
//low battery waring
|
||||
if(comp.compare())
|
||||
{
|
||||
debugBlink(false);
|
||||
paket[0] = 128;
|
||||
paket[2] = 0;
|
||||
paket[3] = 1;
|
||||
transmiter.sendPacket(paketUint);
|
||||
}
|
||||
|
||||
//presure sensor
|
||||
uint16_t pressure = pressSensor.getPressure();
|
||||
paket[0] = 3;
|
||||
paket[2] = pressure >> 8;
|
||||
paket[3] = pressure;
|
||||
transmiter.send(paket, 4);
|
||||
if constexpr(BMP_280)
|
||||
{
|
||||
debugBlink(false);
|
||||
uint16_t pressure = pressSensor.getPressure();
|
||||
paket[0] = 3;
|
||||
paket[2] = pressure >> 8;
|
||||
paket[3] = pressure;
|
||||
transmiter.sendPacket(paketUint);
|
||||
}
|
||||
|
||||
//door
|
||||
if constexpr(WATCH_DOOR)
|
||||
{
|
||||
debugBlink(false);
|
||||
paket[0] = 0;
|
||||
paket[1] = 2;
|
||||
paket[2] = 0;
|
||||
paket[3] = readPin(&PIND, DOOR_PIN);
|
||||
transmiter.send(paket, 4);
|
||||
transmiter.sendPacket(paketUint);
|
||||
}
|
||||
comp.off();
|
||||
power(false);
|
||||
}
|
||||
sleep_mode();
|
||||
|
Reference in New Issue
Block a user