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
src/sensor.cpp
- Committer:
- alpov
- Date:
- 2014-07-30
- Revision:
- 6:c24057b64a66
- Parent:
- 5:5c8e97742751
File content as of revision 6:c24057b64a66:
#include "mbed.h" #include "rtos.h" #include "1wire.h" #include "sensor.h" #include "sd.h" uint8_t sensor_roms[MAX_SENSORS][8]; int16_t sensor_temps[MAX_SENSORS]; int sensor_count; Mutex sensor_mutex; void sensor_thread(void const *args) { OneWire ow(A4, A2, A3); int result, temp; uint8_t rom[8]; while (1) { ow.ConvertAll(false); Thread::wait(CONVERT_T_DELAY); sensor_mutex.lock(); sensor_count = 0; memset(rom, 0, sizeof(rom)); result = ow.First(rom); while (result == OW_FOUND && sensor_count < MAX_SENSORS) { if (ow.ReadTemperature(rom, &temp) == 0) { memcpy(sensor_roms[sensor_count], rom, sizeof(rom)); sensor_temps[sensor_count] = temp; sensor_count++; int id = get_sensor_cfg(rom, NULL); log_temperature(id, temp); } result = ow.Next(rom); } sensor_mutex.unlock(); } }