Ach so Du hast ein Compiler Problem....
Anbei findest Du den Inhalt meiner i2c.h ist selbstgeschrieben, funzt, und
ist im Prinzip das was izaseba meint, einfach mit den armen Registern des
Atmels reden... sollte funzen
Code:
//
#define I2C_STA \
do \
{ \
TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN); \
while (!(TWCR&(1<<TWINT))); \
} \
while(0)
//
#define I2C_STO \
do \
{ \
TWCR=(1<<TWINT)|(1<<TWSTO)|(1<<TWEN); \
} \
while(0)
//ADRESSE SENDEN
#define I2C_ADR(X) \
do \
{ \
TWDR=X;\
TWCR=(1<<TWINT)|(1<<TWEN);\
while (!(TWCR&(1<<TWINT)));\
\
}\
while(0)
//DATUM SENDEN
#define I2C_SENDDATA(X) \
do \
{ \
TWDR=X;\
TWCR=(1<<TWINT)|(1<<TWEN);\
while (!(TWCR&(1<<TWINT))); \
}\
while(0)
//DATUM EMPFANGEN
#define I2C_GETDATA(X) \
do \
{ \
TWCR=(1<<TWINT)|(1<<TWEN)|(1<<TWEA);\
while (!(TWCR&(1<<TWINT))); \
X=TWDR; \
}\
while(0)
void ADS1100INIT()
{
I2C_STA;
I2C_ADR(0x96);
//TWDR=0xaa;
//TWCR=(1<<TWINT)|(1<<TWEN);
//while (!(TWCR&(1<<TWINT)));
I2C_SENDDATA(0x0d);
I2C_STO;
}
Lesezeichen