M0Board_WF
/
WF_lektion9-LM75B_state_maschine
a
main.cpp
- Committer:
- bulmenwt
- Date:
- 2015-01-28
- Revision:
- 0:620c051199c6
File content as of revision 0:620c051199c6:
/*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); maxTemp() ; stateMachine(); wait(1); //Print the current temperature // printf("Temp = %.3f\n\r", (float)sensor); //Sleep for 0.5 seconds wait(0.5); } } else { error("Device not detected!\n"); } } /* function declaration */ void maxTemp(); void stateMachine() { switch( state ) { case led_on: printf("STATE: led_on!\n\r"); Led2=1; Led3=1; state = temp; break; case temp: printf("STATE: temp!\n\r"); printf("Temp = %.3f\n\r", (float)sensor); wait(0.5); state = led_off; break; case led_off: printf("STATE: led_off!\n\r"); Led2=0; Led3=0; state = led_on; break; } } void maxTemp() { /* local variable declaration */ if (sensor > 29.0) { Led1=1; } else Led1=0; //return 0; }