program for I2C master device

Dependencies:   mbed

Fork of I2C_HelloWorld_Mbed by mbed official

Committer:
marcus255
Date:
Fri Dec 25 21:35:57 2015 +0000
Revision:
10:39dd1d3508c3
Parent:
9:36fc715eb54c
Child:
11:eff597e2366e
Final version of I2C Master devices simulator

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcus255 10:39dd1d3508c3 1 /*
marcus255 10:39dd1d3508c3 2 * Project: I2C to UART converter
marcus255 10:39dd1d3508c3 3 * File: main.h
marcus255 10:39dd1d3508c3 4 * Utility: simulating I2C Master devices
marcus255 10:39dd1d3508c3 5 * Author: Marek Trojan
marcus255 10:39dd1d3508c3 6 */
marcus255 10:39dd1d3508c3 7
marcus255 4:1ec553356dcc 8 #ifndef MAIN_H
marcus255 4:1ec553356dcc 9 #define MAIN_H
marcus255 4:1ec553356dcc 10
marcus255 4:1ec553356dcc 11 #include "mbed.h"
marcus255 10:39dd1d3508c3 12 #define EEPROM_ADDRESS 0xA0
marcus255 10:39dd1d3508c3 13 #define RTC_ADDR 0xD0
marcus255 8:3e6945d5d9a1 14 #define TEMPERATURE_REGISTER 0x11
marcus255 10:39dd1d3508c3 15 #define TIME_REGISTER 0x00
marcus255 9:36fc715eb54c 16 #define RIGHT_PUSH_BUTTON PTC3
marcus255 9:36fc715eb54c 17 #define LEFT_PUSH_BUTTON PTC12
marcus255 10:39dd1d3508c3 18 #define DATA_SIZE 16
marcus255 9:36fc715eb54c 19 #define SENSOR_ROUTINE 1
marcus255 9:36fc715eb54c 20 #define MEMORY_ROUTINE 2
marcus255 10:39dd1d3508c3 21 #define TIME_ROUTINE 3
marcus255 10:39dd1d3508c3 22 #define I2C_FREQUENCY_STANDARD 100000 /* Hz */
marcus255 9:36fc715eb54c 23
marcus255 9:36fc715eb54c 24 InterruptIn left_but(LEFT_PUSH_BUTTON);
marcus255 9:36fc715eb54c 25 InterruptIn right_but(RIGHT_PUSH_BUTTON);
marcus255 4:1ec553356dcc 26 I2C i2c(PTE0, PTE1);
marcus255 4:1ec553356dcc 27 Serial pc(USBTX, USBRX);
marcus255 4:1ec553356dcc 28 DigitalOut led(LED_GREEN);
marcus255 4:1ec553356dcc 29 Ticker i2c_ticker;
marcus255 5:8dc6d7d81250 30 void write_data(void);
marcus255 7:b07706b16279 31 void read_data(char*);
marcus255 5:8dc6d7d81250 32 void write_and_read(void);
marcus255 9:36fc715eb54c 33 void memory_routine(void);
marcus255 10:39dd1d3508c3 34 void rtc_routine(void);
marcus255 8:3e6945d5d9a1 35
marcus255 8:3e6945d5d9a1 36 void rtc_sensor();
marcus255 9:36fc715eb54c 37 int get_temperature_raw(char*);
marcus255 8:3e6945d5d9a1 38 float proceed_temperature(char*);
marcus255 10:39dd1d3508c3 39 void rtc_time(void);
marcus255 10:39dd1d3508c3 40 int get_time_raw(char*);
marcus255 10:39dd1d3508c3 41 void proceed_time(char *, uint8_t *);
marcus255 8:3e6945d5d9a1 42
marcus255 9:36fc715eb54c 43 unsigned int rnd(void);
marcus255 9:36fc715eb54c 44 int routine;
marcus255 9:36fc715eb54c 45 char memory_cell_addr;
marcus255 9:36fc715eb54c 46 unsigned int m_z;
marcus255 9:36fc715eb54c 47 unsigned int m_w;
marcus255 9:36fc715eb54c 48
marcus255 4:1ec553356dcc 49 void init(void);
marcus255 9:36fc715eb54c 50 char data[DATA_SIZE + 1];
marcus255 9:36fc715eb54c 51
marcus255 4:1ec553356dcc 52
marcus255 4:1ec553356dcc 53 #endif