-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
45fa0b2
commit f639654
Showing
8 changed files
with
714 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,115 @@ | ||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> | ||
<storageModule moduleId="org.eclipse.cdt.core.settings"> | ||
<cconfiguration id="de.innot.avreclipse.configuration.app.debug.1398186298"> | ||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="de.innot.avreclipse.configuration.app.debug.1398186298" moduleId="org.eclipse.cdt.core.settings" name="Debug"> | ||
<externalSettings/> | ||
<extensions> | ||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> | ||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
</extensions> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<configuration artifactName="${ProjName}" buildArtefactType="de.innot.avreclipse.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=de.innot.avreclipse.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" description="" id="de.innot.avreclipse.configuration.app.debug.1398186298" name="Debug" parent="de.innot.avreclipse.configuration.app.debug"> | ||
<folderInfo id="de.innot.avreclipse.configuration.app.debug.1398186298." name="/" resourcePath=""> | ||
<toolChain id="de.innot.avreclipse.toolchain.winavr.app.debug.912433883" name="AVR-GCC Toolchain" superClass="de.innot.avreclipse.toolchain.winavr.app.debug"> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.debug.1550855567" name="Generate HEX file for Flash memory" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.debug"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.debug.1081230075" name="Generate HEX file for EEPROM" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.debug"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.debug.1389849276" name="Generate Extended Listing (Source + generated Assembler)" superClass="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.debug"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.size.app.debug.1153936410" name="Print Size" superClass="de.innot.avreclipse.toolchain.options.toolchain.size.app.debug"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.debug.1964706083" name="AVRDude" superClass="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.debug"/> | ||
<targetPlatform id="de.innot.avreclipse.targetplatform.winavr.app.debug.1302712001" name="AVR Cross-Target" superClass="de.innot.avreclipse.targetplatform.winavr.app.debug"/> | ||
<builder buildPath="${workspace_loc:/I2C}/Debug" id="de.innot.avreclipse.target.builder.winavr.app.debug.1260963315" managedBuildOn="true" name="AVR GNU Make Builder.Debug" superClass="de.innot.avreclipse.target.builder.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.assembler.winavr.app.debug.34985947" name="AVR Assembler" superClass="de.innot.avreclipse.tool.assembler.winavr.app.debug"> | ||
<option id="de.innot.avreclipse.assembler.option.debug.level.1379174333" superClass="de.innot.avreclipse.assembler.option.debug.level"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.compiler.winavr.app.debug.1675964786" name="AVR Compiler" superClass="de.innot.avreclipse.tool.compiler.winavr.app.debug"> | ||
<option id="de.innot.avreclipse.compiler.option.debug.level.1850563083" superClass="de.innot.avreclipse.compiler.option.debug.level"/> | ||
<option id="de.innot.avreclipse.compiler.option.optimize.1030689869" superClass="de.innot.avreclipse.compiler.option.optimize"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.cppcompiler.app.debug.1510305873" name="AVR C++ Compiler" superClass="de.innot.avreclipse.tool.cppcompiler.app.debug"> | ||
<option id="de.innot.avreclipse.cppcompiler.option.debug.level.212789049" superClass="de.innot.avreclipse.cppcompiler.option.debug.level"/> | ||
<option id="de.innot.avreclipse.cppcompiler.option.optimize.666998004" superClass="de.innot.avreclipse.cppcompiler.option.optimize"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.linker.winavr.app.debug.1541187406" name="AVR C Linker" superClass="de.innot.avreclipse.tool.linker.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.cpplinker.app.debug.1835371039" name="AVR C++ Linker" superClass="de.innot.avreclipse.tool.cpplinker.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.archiver.winavr.base.1152291604" name="AVR Archiver" superClass="de.innot.avreclipse.tool.archiver.winavr.base"/> | ||
<tool id="de.innot.avreclipse.tool.objdump.winavr.app.debug.923367127" name="AVR Create Extended Listing" superClass="de.innot.avreclipse.tool.objdump.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.objcopy.flash.winavr.app.debug.2074735404" name="AVR Create Flash image" superClass="de.innot.avreclipse.tool.objcopy.flash.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.debug.1181330708" name="AVR Create EEPROM image" superClass="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.size.winavr.app.debug.205330556" name="Print Size" superClass="de.innot.avreclipse.tool.size.winavr.app.debug"/> | ||
<tool id="de.innot.avreclipse.tool.avrdude.app.debug.191375001" name="AVRDude" superClass="de.innot.avreclipse.tool.avrdude.app.debug"/> | ||
</toolChain> | ||
</folderInfo> | ||
</configuration> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> | ||
</cconfiguration> | ||
<cconfiguration id="de.innot.avreclipse.configuration.app.release.1401385106"> | ||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="de.innot.avreclipse.configuration.app.release.1401385106" moduleId="org.eclipse.cdt.core.settings" name="Release"> | ||
<externalSettings/> | ||
<extensions> | ||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> | ||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> | ||
</extensions> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<configuration artifactName="${ProjName}" buildArtefactType="de.innot.avreclipse.buildArtefactType.app" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=de.innot.avreclipse.buildArtefactType.app,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" description="" id="de.innot.avreclipse.configuration.app.release.1401385106" name="Release" parent="de.innot.avreclipse.configuration.app.release"> | ||
<folderInfo id="de.innot.avreclipse.configuration.app.release.1401385106." name="/" resourcePath=""> | ||
<toolChain id="de.innot.avreclipse.toolchain.winavr.app.release.2097903649" name="AVR-GCC Toolchain" superClass="de.innot.avreclipse.toolchain.winavr.app.release"> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.release.1525056151" name="Generate HEX file for Flash memory" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.flash.app.release"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.release.1912334197" name="Generate HEX file for EEPROM" superClass="de.innot.avreclipse.toolchain.options.toolchain.objcopy.eeprom.app.release"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.release.1529957291" name="Generate Extended Listing (Source + generated Assembler)" superClass="de.innot.avreclipse.toolchain.options.toolchain.objdump.app.release"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.size.app.release.1057387379" name="Print Size" superClass="de.innot.avreclipse.toolchain.options.toolchain.size.app.release"/> | ||
<option id="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.release.1868669026" name="AVRDude" superClass="de.innot.avreclipse.toolchain.options.toolchain.avrdude.app.release"/> | ||
<targetPlatform id="de.innot.avreclipse.targetplatform.winavr.app.release.1690791001" name="AVR Cross-Target" superClass="de.innot.avreclipse.targetplatform.winavr.app.release"/> | ||
<builder buildPath="${workspace_loc:/I2C}/Release" id="de.innot.avreclipse.target.builder.winavr.app.release.2115842886" managedBuildOn="true" name="AVR GNU Make Builder.Release" superClass="de.innot.avreclipse.target.builder.winavr.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.assembler.winavr.app.release.557136347" name="AVR Assembler" superClass="de.innot.avreclipse.tool.assembler.winavr.app.release"> | ||
<option id="de.innot.avreclipse.assembler.option.debug.level.1679742381" superClass="de.innot.avreclipse.assembler.option.debug.level" value="de.innot.avreclipse.assembler.option.debug.level.none" valueType="enumerated"/> | ||
<inputType id="de.innot.avreclipse.tool.assembler.input.8624527" superClass="de.innot.avreclipse.tool.assembler.input"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.compiler.winavr.app.release.664588425" name="AVR Compiler" superClass="de.innot.avreclipse.tool.compiler.winavr.app.release"> | ||
<option id="de.innot.avreclipse.compiler.option.debug.level.481468023" superClass="de.innot.avreclipse.compiler.option.debug.level" value="de.innot.avreclipse.compiler.option.debug.level.none" valueType="enumerated"/> | ||
<option id="de.innot.avreclipse.compiler.option.optimize.959285472" superClass="de.innot.avreclipse.compiler.option.optimize" value="de.innot.avreclipse.compiler.optimize.size" valueType="enumerated"/> | ||
<inputType id="de.innot.avreclipse.compiler.winavr.input.876017914" name="C Source Files" superClass="de.innot.avreclipse.compiler.winavr.input"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.cppcompiler.app.release.1368718099" name="AVR C++ Compiler" superClass="de.innot.avreclipse.tool.cppcompiler.app.release"> | ||
<option id="de.innot.avreclipse.cppcompiler.option.debug.level.672043687" superClass="de.innot.avreclipse.cppcompiler.option.debug.level" value="de.innot.avreclipse.cppcompiler.option.debug.level.none" valueType="enumerated"/> | ||
<option id="de.innot.avreclipse.cppcompiler.option.optimize.399727210" superClass="de.innot.avreclipse.cppcompiler.option.optimize" value="de.innot.avreclipse.cppcompiler.optimize.size" valueType="enumerated"/> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.linker.winavr.app.release.195756801" name="AVR C Linker" superClass="de.innot.avreclipse.tool.linker.winavr.app.release"> | ||
<inputType id="de.innot.avreclipse.tool.linker.input.1870853237" name="OBJ Files" superClass="de.innot.avreclipse.tool.linker.input"> | ||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/> | ||
<additionalInput kind="additionalinput" paths="$(LIBS)"/> | ||
</inputType> | ||
</tool> | ||
<tool id="de.innot.avreclipse.tool.cpplinker.app.release.904063343" name="AVR C++ Linker" superClass="de.innot.avreclipse.tool.cpplinker.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.archiver.winavr.base.2103943764" name="AVR Archiver" superClass="de.innot.avreclipse.tool.archiver.winavr.base"/> | ||
<tool id="de.innot.avreclipse.tool.objdump.winavr.app.release.515335690" name="AVR Create Extended Listing" superClass="de.innot.avreclipse.tool.objdump.winavr.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.objcopy.flash.winavr.app.release.361491397" name="AVR Create Flash image" superClass="de.innot.avreclipse.tool.objcopy.flash.winavr.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.release.612817772" name="AVR Create EEPROM image" superClass="de.innot.avreclipse.tool.objcopy.eeprom.winavr.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.size.winavr.app.release.1809767002" name="Print Size" superClass="de.innot.avreclipse.tool.size.winavr.app.release"/> | ||
<tool id="de.innot.avreclipse.tool.avrdude.app.release.76194385" name="AVRDude" superClass="de.innot.avreclipse.tool.avrdude.app.release"/> | ||
</toolChain> | ||
</folderInfo> | ||
</configuration> | ||
</storageModule> | ||
</cconfiguration> | ||
</storageModule> | ||
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> | ||
<project id="I2C.de.innot.avreclipse.project.winavr.elf_2.1.0.1478669161" name="AVR Cross Target Application" projectType="de.innot.avreclipse.project.winavr.elf_2.1.0"/> | ||
</storageModule> | ||
<storageModule moduleId="scannerConfiguration"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> | ||
<scannerConfigBuildInfo instanceId="de.innot.avreclipse.configuration.app.release.1401385106;de.innot.avreclipse.configuration.app.release.1401385106.;de.innot.avreclipse.tool.compiler.winavr.app.release.664588425;de.innot.avreclipse.compiler.winavr.input.876017914"> | ||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="de.innot.avreclipse.core.AVRGCCManagedMakePerProjectProfileC"/> | ||
</scannerConfigBuildInfo> | ||
</storageModule> | ||
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> | ||
</cproject> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<projectDescription> | ||
<name>I2C</name> | ||
<comment></comment> | ||
<projects> | ||
</projects> | ||
<buildSpec> | ||
<buildCommand> | ||
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name> | ||
<triggers>clean,full,incremental,</triggers> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
<buildCommand> | ||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name> | ||
<triggers>full,incremental,</triggers> | ||
<arguments> | ||
</arguments> | ||
</buildCommand> | ||
</buildSpec> | ||
<natures> | ||
<nature>org.eclipse.cdt.core.cnature</nature> | ||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> | ||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> | ||
<nature>de.innot.avreclipse.core.avrnature</nature> | ||
</natures> | ||
</projectDescription> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
avrtarget/ClockFrequency=1000000 | ||
avrtarget/ExtRAMSize=0 | ||
avrtarget/ExtendedRAM=false | ||
avrtarget/MCUType=atmega32 | ||
avrtarget/UseEEPROM=false | ||
avrtarget/UseExtendedRAMforHeap=true | ||
eclipse.preferences.version=1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
eclipse.preferences.version=1 | ||
encoding/<project>=UTF-8 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
/****************************************************************************** | ||
* | ||
* Module: TWI(I2C) | ||
* File Name: twi.h | ||
* Description: Source file for the TWI(I2C) AVR driver | ||
* Author: Ibrahim Mohamed | ||
* | ||
*******************************************************************************/ | ||
|
||
#include "twi.h" | ||
#include "common_macros.h" | ||
#include <avr/io.h> | ||
|
||
void TWI_init(void) | ||
{ | ||
/* Bit Rate: 400.000 kbps using zero pre-scaler TWPS=00 and F_CPU=8Mhz */ | ||
TWBR = 0x02; | ||
TWSR = 0x00; | ||
|
||
/* Two Wire Bus address my address if any master device want to call me: 0x1 (used in case this MC is a slave device) | ||
General Call Recognition: Off */ | ||
TWAR = 0b00000010; // my address = 0x01 :) | ||
|
||
TWCR = (1<<TWEN); /* enable TWI */ | ||
} | ||
|
||
void TWI_start(void) | ||
{ | ||
/* | ||
* Clear the TWINT flag before sending the start bit TWINT=1 | ||
* send the start bit by TWSTA=1 | ||
* Enable TWI Module TWEN=1 | ||
*/ | ||
TWCR = (1 << TWINT) | (1 << TWSTA) | (1 << TWEN); | ||
|
||
/* Wait for TWINT flag set in TWCR Register (start bit is send successfully) */ | ||
while(BIT_IS_CLEAR(TWCR,TWINT)); | ||
} | ||
|
||
void TWI_stop(void) | ||
{ | ||
/* | ||
* Clear the TWINT flag before sending the stop bit TWINT=1 | ||
* send the stop bit by TWSTO=1 | ||
* Enable TWI Module TWEN=1 | ||
*/ | ||
TWCR = (1 << TWINT) | (1 << TWSTO) | (1 << TWEN); | ||
} | ||
|
||
void TWI_writeByte(uint8 data) | ||
{ | ||
/* Put data On TWI data Register */ | ||
TWDR = data; | ||
/* | ||
* Clear the TWINT flag before sending the data TWINT=1 | ||
* Enable TWI Module TWEN=1 | ||
*/ | ||
TWCR = (1 << TWINT) | (1 << TWEN); | ||
/* Wait for TWINT flag set in TWCR Register(data is send successfully) */ | ||
while(BIT_IS_CLEAR(TWCR,TWINT)); | ||
} | ||
|
||
uint8 TWI_readByteWithACK(void) | ||
{ | ||
/* | ||
* Clear the TWINT flag before reading the data TWINT=1 | ||
* Enable sending ACK after reading or receiving data TWEA=1 | ||
* Enable TWI Module TWEN=1 | ||
*/ | ||
TWCR = (1 << TWINT) | (1 << TWEN) | (1 << TWEA); | ||
/* Wait for TWINT flag set in TWCR Register (data received successfully) */ | ||
while(BIT_IS_CLEAR(TWCR,TWINT)); | ||
/* Read Data */ | ||
return TWDR; | ||
} | ||
|
||
uint8 TWI_readByteWithNACK(void) | ||
{ | ||
/* | ||
* Clear the TWINT flag before reading the data TWINT=1 | ||
* Enable TWI Module TWEN=1 | ||
*/ | ||
TWCR = (1 << TWINT) | (1 << TWEN); | ||
/* Wait for TWINT flag set in TWCR Register (data received successfully) */ | ||
while(BIT_IS_CLEAR(TWCR,TWINT)); | ||
/* Read Data */ | ||
return TWDR; | ||
} | ||
|
||
uint8 TWI_getStatus(void) | ||
{ | ||
uint8 status; | ||
/* masking to eliminate first 3 bits and get the last 5 bits (status bits) */ | ||
status = TWSR & 0xF8; | ||
return status; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
/****************************************************************************** | ||
* | ||
* Module: TWI(I2C) | ||
* File Name: twi.h | ||
* Description: Header file for the TWI(I2C) AVR driver | ||
* Author: Ibrahim Mohamed | ||
* | ||
*******************************************************************************/ | ||
|
||
#ifndef TWI_H_ | ||
#define TWI_H_ | ||
|
||
#include "std_types.h" | ||
|
||
/******************************************************************************* | ||
* Preprocessor Macros * | ||
*******************************************************************************/ | ||
|
||
/* I2C Status Bits in the TWSR Register */ | ||
#define TWI_START 0x08 /* start has been sent */ | ||
#define TWI_REP_START 0x10 /* repeated start */ | ||
#define TWI_MT_SLA_W_ACK 0x18 /* Master transmit ( slave address + Write request ) to slave + ACK received from slave. */ | ||
#define TWI_MT_SLA_R_ACK 0x40 /* Master transmit ( slave address + Read request ) to slave + ACK received from slave. */ | ||
#define TWI_MT_DATA_ACK 0x28 /* Master transmit data and ACK has been received from Slave. */ | ||
#define TWI_MR_DATA_ACK 0x50 /* Master received data and send ACK to slave. */ | ||
#define TWI_MR_DATA_NACK 0x58 /* Master received data but doesn't send ACK to slave. */ | ||
|
||
/******************************************************************************* | ||
* Functions Prototypes * | ||
*******************************************************************************/ | ||
void TWI_init(void); | ||
void TWI_start(void); | ||
void TWI_stop(void); | ||
void TWI_writeByte(uint8 data); | ||
uint8 TWI_readByteWithACK(void); | ||
uint8 TWI_readByteWithNACK(void); | ||
uint8 TWI_getStatus(void); | ||
|
||
|
||
#endif /* TWI_H_ */ |
Oops, something went wrong.