Barometer program : Data Logger function includes Barometer & temperature (BMP180), Humidity & temp. (RHT03), Sunshine (Cds), RTC(M41T62) data. : Logging data saves into EEPROM (AT24C1024) using ring buffer function.

Dependencies:   AT24C1024 RHT03 TextLCD BMP180 M41T62

Fork of mbed_blinky by Mbed

Please see https://mbed.org/users/kenjiArai/notebook/mbed-lpc1114fn28-barometer-with-data-logging/#

Revision:
15:065fbeddc305
Child:
16:f164f8912201
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dt_log.h	Sun Jun 29 06:58:00 2014 +0000
@@ -0,0 +1,67 @@
+/*
+ * mbed Application program for the mbed LPC1114FN28
+ * Data Logging 
+ *
+ * Copyright (c) 2013,'14 Kenji Arai / JH1PJL
+ *  http://www.page.sannet.ne.jp/kenjia/index.html
+ *  http://mbed.org/users/kenjiArai/
+ *      Created: June      16th, 2013
+ *      Revised: June      29th, 2014
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
+ * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+//  Definition  -----------------------------------------------------------------------------------
+// Buffer size
+#define EEP_SIZE    128 * 1024  // 1Mbits = 128 KBytes
+#define PKT_SIZE    16          // Packet size
+#define BLK_NO      8192        // 128KB/16 = 8192
+#define ALL_SIZE    (PKT_SIZE) * (BLK_NO)
+#if ALL_SIZ > EEP_SIZE
+#error "Data size in EEPROM is too big!"
+#endif
+#define PTR_SIZE    16
+
+// Buffer control
+#define BUF_HEAD    0x0001
+#define BUF_RD_ALL  0
+#define BLK_SIZE    16
+
+// Buffer Status
+#define BUF_FULL    0xff
+
+// Packet pointer
+#define READ_POINTER()  \
+            ((uint16_t)(( buf_pointer[0] << 8) + buf_pointer[1]))
+#define WRITE_POINTER(x)    \
+            buf_pointer[0] = (uint8_t)( x >> 8); \
+            buf_pointer[1] = (uint8_t)x;
+#define RD_STATUS() \
+            (buf_pointer[2])
+#define WR_STATUS(x)    \
+            buf_pointer[2] = (uint8_t)x;
+
+// Pointer structure
+typedef struct EEPROM_BUF_INF{
+    uint16_t wr_pointer;
+    uint16_t max;
+    uint16_t ptr;
+    uint8_t  size;
+    uint8_t  status;    
+} xEeprom_ptr;
+
+// RAM definition
+extern uint8_t data_pack[PKT_SIZE];
+
+//  Function prototypes ---------------------------------------------------------------------------
+void dtlog_data_pack(void);
+void dtlog_one_write(void);
+void dtlog_rd_buf_inf(xEeprom_ptr *);
+void dtlog_clear_all_buff(xEeprom_ptr *);
+void dtlog_block_read(xEeprom_ptr *);
+void dtlog_num_of_block(xEeprom_ptr *);
+uint16_t dtlog_buf_occupation(void);