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/#

Committer:
kenjiArai
Date:
Sun Jun 29 06:58:00 2014 +0000
Revision:
15:065fbeddc305
Child:
16:f164f8912201
Barometer program / Step by step approach -> final step,; Barometer, Humidity, Sunshine, RTC data into EEPROM (logging)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 15:065fbeddc305 1 /*
kenjiArai 15:065fbeddc305 2 * mbed Application program for the mbed LPC1114FN28
kenjiArai 15:065fbeddc305 3 * Data Logging
kenjiArai 15:065fbeddc305 4 *
kenjiArai 15:065fbeddc305 5 * Copyright (c) 2013,'14 Kenji Arai / JH1PJL
kenjiArai 15:065fbeddc305 6 * http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 15:065fbeddc305 7 * http://mbed.org/users/kenjiArai/
kenjiArai 15:065fbeddc305 8 * Created: June 16th, 2013
kenjiArai 15:065fbeddc305 9 * Revised: June 29th, 2014
kenjiArai 15:065fbeddc305 10 *
kenjiArai 15:065fbeddc305 11 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
kenjiArai 15:065fbeddc305 12 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
kenjiArai 15:065fbeddc305 13 * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kenjiArai 15:065fbeddc305 14 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kenjiArai 15:065fbeddc305 15 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kenjiArai 15:065fbeddc305 16 */
kenjiArai 15:065fbeddc305 17
kenjiArai 15:065fbeddc305 18 // Definition -----------------------------------------------------------------------------------
kenjiArai 15:065fbeddc305 19 // Buffer size
kenjiArai 15:065fbeddc305 20 #define EEP_SIZE 128 * 1024 // 1Mbits = 128 KBytes
kenjiArai 15:065fbeddc305 21 #define PKT_SIZE 16 // Packet size
kenjiArai 15:065fbeddc305 22 #define BLK_NO 8192 // 128KB/16 = 8192
kenjiArai 15:065fbeddc305 23 #define ALL_SIZE (PKT_SIZE) * (BLK_NO)
kenjiArai 15:065fbeddc305 24 #if ALL_SIZ > EEP_SIZE
kenjiArai 15:065fbeddc305 25 #error "Data size in EEPROM is too big!"
kenjiArai 15:065fbeddc305 26 #endif
kenjiArai 15:065fbeddc305 27 #define PTR_SIZE 16
kenjiArai 15:065fbeddc305 28
kenjiArai 15:065fbeddc305 29 // Buffer control
kenjiArai 15:065fbeddc305 30 #define BUF_HEAD 0x0001
kenjiArai 15:065fbeddc305 31 #define BUF_RD_ALL 0
kenjiArai 15:065fbeddc305 32 #define BLK_SIZE 16
kenjiArai 15:065fbeddc305 33
kenjiArai 15:065fbeddc305 34 // Buffer Status
kenjiArai 15:065fbeddc305 35 #define BUF_FULL 0xff
kenjiArai 15:065fbeddc305 36
kenjiArai 15:065fbeddc305 37 // Packet pointer
kenjiArai 15:065fbeddc305 38 #define READ_POINTER() \
kenjiArai 15:065fbeddc305 39 ((uint16_t)(( buf_pointer[0] << 8) + buf_pointer[1]))
kenjiArai 15:065fbeddc305 40 #define WRITE_POINTER(x) \
kenjiArai 15:065fbeddc305 41 buf_pointer[0] = (uint8_t)( x >> 8); \
kenjiArai 15:065fbeddc305 42 buf_pointer[1] = (uint8_t)x;
kenjiArai 15:065fbeddc305 43 #define RD_STATUS() \
kenjiArai 15:065fbeddc305 44 (buf_pointer[2])
kenjiArai 15:065fbeddc305 45 #define WR_STATUS(x) \
kenjiArai 15:065fbeddc305 46 buf_pointer[2] = (uint8_t)x;
kenjiArai 15:065fbeddc305 47
kenjiArai 15:065fbeddc305 48 // Pointer structure
kenjiArai 15:065fbeddc305 49 typedef struct EEPROM_BUF_INF{
kenjiArai 15:065fbeddc305 50 uint16_t wr_pointer;
kenjiArai 15:065fbeddc305 51 uint16_t max;
kenjiArai 15:065fbeddc305 52 uint16_t ptr;
kenjiArai 15:065fbeddc305 53 uint8_t size;
kenjiArai 15:065fbeddc305 54 uint8_t status;
kenjiArai 15:065fbeddc305 55 } xEeprom_ptr;
kenjiArai 15:065fbeddc305 56
kenjiArai 15:065fbeddc305 57 // RAM definition
kenjiArai 15:065fbeddc305 58 extern uint8_t data_pack[PKT_SIZE];
kenjiArai 15:065fbeddc305 59
kenjiArai 15:065fbeddc305 60 // Function prototypes ---------------------------------------------------------------------------
kenjiArai 15:065fbeddc305 61 void dtlog_data_pack(void);
kenjiArai 15:065fbeddc305 62 void dtlog_one_write(void);
kenjiArai 15:065fbeddc305 63 void dtlog_rd_buf_inf(xEeprom_ptr *);
kenjiArai 15:065fbeddc305 64 void dtlog_clear_all_buff(xEeprom_ptr *);
kenjiArai 15:065fbeddc305 65 void dtlog_block_read(xEeprom_ptr *);
kenjiArai 15:065fbeddc305 66 void dtlog_num_of_block(xEeprom_ptr *);
kenjiArai 15:065fbeddc305 67 uint16_t dtlog_buf_occupation(void);