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

Committer:
alpov
Date:
Wed Jul 30 19:03:20 2014 +0000
Revision:
6:c24057b64a66
Parent:
5:5c8e97742751
library updates

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alpov 3:ede67e9b60eb 1 #include "mbed.h"
alpov 3:ede67e9b60eb 2 #include "rtos.h"
alpov 3:ede67e9b60eb 3 #include "1wire.h"
alpov 3:ede67e9b60eb 4 #include "sensor.h"
alpov 5:5c8e97742751 5 #include "sd.h"
alpov 3:ede67e9b60eb 6
alpov 4:9065e9ccb078 7 uint8_t sensor_roms[MAX_SENSORS][8];
alpov 4:9065e9ccb078 8 int16_t sensor_temps[MAX_SENSORS];
alpov 3:ede67e9b60eb 9 int sensor_count;
alpov 3:ede67e9b60eb 10
alpov 3:ede67e9b60eb 11 Mutex sensor_mutex;
alpov 3:ede67e9b60eb 12
alpov 3:ede67e9b60eb 13 void sensor_thread(void const *args)
alpov 3:ede67e9b60eb 14 {
alpov 3:ede67e9b60eb 15 OneWire ow(A4, A2, A3);
alpov 3:ede67e9b60eb 16 int result, temp;
alpov 3:ede67e9b60eb 17 uint8_t rom[8];
alpov 3:ede67e9b60eb 18
alpov 3:ede67e9b60eb 19 while (1) {
alpov 3:ede67e9b60eb 20 ow.ConvertAll(false);
alpov 3:ede67e9b60eb 21 Thread::wait(CONVERT_T_DELAY);
alpov 3:ede67e9b60eb 22
alpov 3:ede67e9b60eb 23 sensor_mutex.lock();
alpov 3:ede67e9b60eb 24 sensor_count = 0;
alpov 3:ede67e9b60eb 25 memset(rom, 0, sizeof(rom));
alpov 3:ede67e9b60eb 26 result = ow.First(rom);
alpov 4:9065e9ccb078 27 while (result == OW_FOUND && sensor_count < MAX_SENSORS) {
alpov 3:ede67e9b60eb 28 if (ow.ReadTemperature(rom, &temp) == 0) {
alpov 3:ede67e9b60eb 29 memcpy(sensor_roms[sensor_count], rom, sizeof(rom));
alpov 3:ede67e9b60eb 30 sensor_temps[sensor_count] = temp;
alpov 3:ede67e9b60eb 31 sensor_count++;
alpov 5:5c8e97742751 32
alpov 5:5c8e97742751 33 int id = get_sensor_cfg(rom, NULL);
alpov 5:5c8e97742751 34 log_temperature(id, temp);
alpov 3:ede67e9b60eb 35 }
alpov 3:ede67e9b60eb 36 result = ow.Next(rom);
alpov 3:ede67e9b60eb 37 }
alpov 3:ede67e9b60eb 38 sensor_mutex.unlock();
alpov 3:ede67e9b60eb 39 }
alpov 3:ede67e9b60eb 40 }
alpov 3:ede67e9b60eb 41