Paul Clarke
/
temperature_logger_Pt2
Temp logger for EE Web part 2
main.cpp
- Committer:
- monpjc
- Date:
- 2012-10-08
- Revision:
- 0:5fefec34f0d3
- Child:
- 1:6db2c0502c2c
File content as of revision 0:5fefec34f0d3:
#include "mbed.h" void button_FSM( void ); void max31855( void ); void init_max31855( void ); DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); DigitalIn button(p21); AnalogIn Ain1(p19); AnalogIn Ain2(p20); Serial pc(USBTX, USBRX); DigitalOut spi_clk(p7); DigitalOut spi_cs(p8); DigitalIn spi_data(p6); int enable; int button_state; int record_state; int spi_data_in_temp; int spi_data_in; float A1, A2; int main() { enable = 0; button_state = 0; record_state = 0; init_max31855(); printf("Data Logger Ready\r\n"); while(1) { wait(1.0); button_FSM(); max31855(); if( enable == 1 ) { A1 = Ain1.read_u16(); A2 = Ain2.read_u16(); printf("Ain1=%f Ain2=%f t'c=%d\r\n", A1, A2, spi_data_in); } } } void max31855( void ) { int bits = 0; spi_data_in_temp = 0; spi_clk = 0; spi_cs = 0; wait(0.01); while( bits < 32 ) { spi_clk = 1; spi_clk = 1; if( bits > 0 && bits < 12 ) { spi_data_in_temp = (spi_data_in_temp *2) + spi_data; } spi_clk = 0; bits++; } spi_data_in = spi_data_in_temp; spi_cs = 1; } void init_max31855( void ) { spi_cs = 1; spi_clk = 0; spi_data_in_temp = 0; spi_data_in = 0; } void button_FSM( void ) { if( enable == 0 ) { switch( button_state ) { default: case 0: if( button == 1 ) button_state = 1; else button_state = 0; break; case 1: if( button == 1 ) button_state = 2; else button_state = 0; break; case 2: if( button == 1 ) button_state = 3; else button_state = 0; break; case 3: if( button == 1 ) button_state = 4; else button_state = 0; break; case 4: enable = 1; button_state = 0; printf("Recording...\r\n"); break; } } else { switch( button_state ) { default: case 0: if( button == 1 ) button_state = 1; else button_state = 0; break; case 1: if( button == 1 ) button_state = 2; else button_state = 0; break; case 2: if( button == 1 ) button_state = 3; else button_state = 0; break; case 3: if( button == 1 ) button_state = 4; else button_state = 0; break; case 4: enable = 0; button_state = 0; printf("STOPPED!\r\n"); break; } } switch( button_state ) { default: case 0: led1 = 0; led2 = 0; led3 = 0; led4 = 0; break; case 1: led1 = 1; led2 = 0; led3 = 0; led4 = 0; break; case 2: led1 = 1; led2 = 1; led3 = 0; led4 = 0; break; case 3: led1 = 1; led2 = 1; led3 = 1; led4 = 0; break; case 4: led1 = 1; led2 = 1; led3 = 1; led4 = 1; break; } }