1
Dependencies: mbed
i2c.h
- Committer:
- meric
- Date:
- 2018-07-09
- Revision:
- 0:2a01c5a56ed1
File content as of revision 0:2a01c5a56ed1:
#ifndef _I2C_H_ #define _I2C_H_ /* **************************************************************************** **************************************************************************** ** DEVINT BİLİŞİM YAZILIM DONANIM TİC. LTD. ŞTİ. TARAFINDAN GELİŞTİRİLMİŞTİR ** İzmir / TÜRKİYE ** ** (C) 2015 **************************************************************************** **************************************************************************** *************************************************************** K A M B O ** */ // FONKSIYON PROTOTİPLERİ void eeprom_write(uint8_t eepromtype, uint16_t memory_address, uint8_t value); //****************************************************************************** uint8_t eeprom_read(uint8_t eepromtype, uint16_t memory_address); //****************************************************************************** bool io_send(uint8_t first_byte, uint8_t second_byte); //****************************************************************************** // void eeprom_write(uint8_t eepromtype, uint16_t memory_address, uint8_t val) { if (eepromtype == 1) { // 1 bayt adresleme fnode.edata2[0] = memory_address; fnode.edata2[1] = val; i2c.write(EEPROM_ADDRESS, fnode.edata2, 2, false); wait_ms(10); } else { // 2 bayt adresleme fnode.edata3[0] = memory_address >> 8; fnode.edata3[1] = memory_address & 0xFF; fnode.edata3[2] = val; i2c.write(EEPROM_ADDRESS, fnode.edata3, 3, false); wait_ms(10); } } // uint8_t eeprom_read(uint8_t eepromtype, uint16_t memory_address) { if (eepromtype == 1) { // 1 bayt adresleme fnode.edata = memory_address; i2c.write(EEPROM_ADDRESS, &fnode.edata, 1, true); wait_ms(5); i2c.read(EEPROM_ADDRESS, &fnode.value, 1, false); wait_ms(10); return (uint8_t)fnode.value; } else { // 2 bayt adresleme fnode.edata2[0] = memory_address >> 8; fnode.edata2[1] = memory_address & 0xFF; i2c.write(EEPROM_ADDRESS, fnode.edata2, 2, true); wait_ms(5); i2c.read(EEPROM_ADDRESS, &fnode.value, 1, false); wait_ms(10); return (uint8_t)fnode.value; } } // // bool io_send(uint8_t first_byte, uint8_t second_byte) { bool _success = false; fnode.iodata[0] = first_byte; fnode.iodata[1] = second_byte; // Try max. 3 times for (uint8_t i = 0; i < 3; i++) { if (i2c.write(IO_EXPANDER_ADDRESS, fnode.iodata, 2) == 0) { _success = true; } if (_success == true) { break; } } return _success; } #endif