EMIR - Ekvitermní mikroprocesorová regulace https://code.google.com/p/emir/ https://code.google.com/p/emir/wiki/DesignV3

Dependencies:   ConfigFile DS1307 OneWire SDFileSystem USBDeviceLite mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "mbed_debug.h"
00003 #include "rtos.h"
00004 #include "sensor.h"
00005 #include "comm.h"
00006 #include "sd.h"
00007 
00008 DigitalOut ledR(LED_RED, 1);
00009 DigitalOut ledG(LED_GREEN, 1);
00010 //DigitalOut ledB(LED_BLUE, 1);
00011 
00012 DigitalOut OUT1(D2, 0);
00013 DigitalOut OUT2(D3, 0);
00014 DigitalOut OUT3(D4, 0);
00015 DigitalOut OUT4(D5, 0);
00016 
00017 DigitalIn  IN1(D8, PullUp);
00018 DigitalIn  IN2(D9, PullUp);
00019 
00020 extern "C" void HardFault_Handler() 
00021 {
00022     mbed_die();
00023 }
00024 
00025 int main(void)
00026 {
00027     debug("\n\n\nEMIRv2 compiled " __DATE__ " " __TIME__ "\n");
00028     
00029     debug("Initializing SD... ");
00030     sd_init();
00031 
00032     debug("Starting threads... ");
00033     Thread sensor(sensor_thread, NULL, osPriorityNormal, DEFAULT_STACK_SIZE);
00034     Thread comm(comm_thread, NULL, osPriorityNormal, DEFAULT_STACK_SIZE);
00035     debug("done\n");
00036 
00037     OUT1 = 1;
00038     OUT2 = 1;
00039     OUT3 = 1;
00040     OUT4 = 1;
00041     wait(0.5);
00042     OUT1 = 0;
00043     OUT2 = 0;
00044     OUT3 = 0;
00045     OUT4 = 0;
00046 
00047     int i = 0;
00048     while (1) 
00049     {
00050         ledG = !ledG;
00051         Thread::wait(100);
00052         
00053         if (i++ >= 100) {
00054             write_config();
00055             i = 0;
00056         }
00057     }
00058 
00059 }
00060