Hauptprogramm
Dependencies: ILI9340_Driver_Lib PM2_Libary Lib_DFPlayerMini
main.cpp
- Committer:
- ackerden
- Date:
- 2021-05-02
- Revision:
- 27:bbcd157dcd63
- Parent:
- 26:caa4fab7023e
- Child:
- 29:91df2c5fb297
File content as of revision 27:bbcd157dcd63:
#include "mbed.h" //Eigene Header einbinden //include Zeitfunktion #include "realtimer.h" //include Servosteuerung #include "servo_bewegung.h" //include Feuchtigkeitssensor #include "Chirp.h" //LED Anzeige //#include "clock_display.h" //#include "Adafruit_LED_Backpack.h" #define TIME_24_HOUR true #define DISPLAY_ADDRESS 0x70 // an I2C sub-class that provides a constructed default class I2CPreInit : public I2C { public: I2CPreInit(PinName sda, PinName scl) : I2C(sda, scl) { frequency(400000); //start(); }; }; I2CPreInit gI2C(PB_9, PB_8); //Adafruit_7segment clockDisplay = Adafruit_7segment(); //clockDisplay.begin(DISPLAY_ADDRESS); //bool blinkColon = false; using namespace std::chrono; InterruptIn user_button(USER_BUTTON); DigitalOut led(LED1); BufferedSerial pc(SERIAL_TX, SERIAL_RX); I2C i2c(PB_9, PB_8); // i2c1 pins bool executeMainTask = false; Timer user_button_timer, loop_timer; /* declaration of custom button functions */ void button_fall(); void button_rise(); int main() { set_time(1618332129); //Zeit setzen //Laufvariablen int hours = 0; int minutes = 0; int seconds = 0; user_button.fall(&button_fall); user_button.rise(&button_rise); loop_timer.start(); while (true) { loop_timer.reset(); if (executeMainTask) { getResults(); //Zeitfunktion uhrzeit(time(NULL)); //Uhr Anzeige //clock_display(seconds, minutes, hours); switch(seconds){ //2 Minuten case 120: seconds += 5; //Seesaw Programm getResults(); ThisThread::sleep_for(5s); //Wartet 5s.. break; //5 Minuten case 300: { seconds += 5; bewegung(1); ThisThread::sleep_for(5s); //Wartet 5s.. break; } //7 Minuten case 420: seconds += 5; bewegung(2); //Audio Signal ThisThread::sleep_for(5s); //Wartet 5s.. break; //10 Minuten case 600: seconds += 5; bewegung(3); //Audio Signal ThisThread::sleep_for(5s); //Wartet 5s.. break; default : seconds += 5; ThisThread::sleep_for(5s); //Wartet 5s.. break; } led = !led; } } } void button_fall() { user_button_timer.reset(); user_button_timer.start(); } void button_rise() { int t_button_ms = duration_cast<milliseconds>(user_button_timer.elapsed_time()).count(); user_button_timer.stop(); if (t_button_ms > 200) { executeMainTask = !executeMainTask; } }