M0Board_WF
/
WF_lektion9-LM75B_State_temp
a
Diff: main.cpp
- Revision:
- 0:311bb45bd2b4
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Jan 28 07:48:27 2015 +0000 @@ -0,0 +1,80 @@ +/*M0-BOARD LPC11U24 VERSION 1.0 / HI/ENE/WF 09_2014 +BULME Graz / Elektronik 29 +Alternativ ohne Library für LM75B +*/ +#include "mbed.h" +#include "LM75B.h" + +DigitalOut Led1(LED1); +DigitalOut Led2(LED2); +DigitalOut Led3(LED3); +DigitalOut Led4(LED4); + +typedef enum {led_on, temp, led_off} state_t; + +state_t state=led_on; + +/* function declaration */ +void maxTemp(); +void stateMachine(); + +//Create an LM75B object at the default address (ADDRESS_0) +LM75B sensor(p28, p27); +int main() +{ +//Try to open the LM75B + if (sensor.open()) { + printf("Device detected!\n\r"); + while (1) { + Led4=1; + wait(0.2); + Led4=0; + wait(0.2); + // Funktionsaufruf + maxTemp(); + stateMachine(); + + //Print the current temperature + // printf("Temp = %.1f\n\r", (float)sensor); + //Sleep for 0.5 seconds + wait(0.5); + } + } else { + error("Device not detected!\n"); + } +} + + +void maxTemp() +{ + /* local variable declaration */ + if (sensor > 29.0) { + Led1=1; + } else + Led1=0; + //return 0; +} + +void stateMachine(){ + + switch (state) { + case led_on: + printf("STATE: led_on!\n\r"); + led2=1; + led3=1; + wait(2); + state=temp; + break; + + case temp: + printf("STATE: led_on!\n\r"); + printf("Temp = %.1f\n\r", (float)sensor); + wait(2); + state=led_off; + break; + + + + + + } \ No newline at end of file