#include "asuro.h"
#include "i2c.h"
gehe zum Quellcode dieser Datei
Funktionen | |
void | InitI2C (void) |
I2C Bus Initialisieren. | |
unsigned char | WriteI2C (unsigned char byte) |
Daten ueber I2C schreiben. | |
unsigned char | ReadI2C (unsigned char ack) |
Daten aus I2C Bus lesen. | |
unsigned char | StartI2C (unsigned char device) |
Datenaustausch starten. | |
void | StopI2C (void) |
Datenaustausch Stoppen. |
V002 - 18.02.2006 - Sternthaler
Keine Codeaenderung.
Austausch der TAB's gegen BLANK's.
Definiert in Datei i2c.c.
void InitI2C | ( | void | ) |
unsigned char ReadI2C | ( | unsigned char | ack | ) |
Daten aus I2C Bus lesen.
ack | NAK oder ACK |
Definiert in Zeile 115 der Datei i2c.c.
00116 { 00117 unsigned char i, byte = 0; 00118 00119 SDA_HI; 00120 SDA_DDR &= ~(1 << SDA); 00121 00122 for (i=0; i<8; i++) 00123 { 00124 HDEL; 00125 SCL_HI; 00126 byte <<= 1; 00127 byte |= (SDA_PIN & (1 << SDA)) >> SDA; 00128 HDEL; 00129 SCL_LO; 00130 } 00131 00132 SDA_DDR |= (1 << SDA); 00133 00134 if (ack) 00135 SDA_LO; // ack 00136 else 00137 SDA_HI; // nak 00138 00139 SCL_TOGGLE; 00140 SDA_HI; 00141 00142 return byte; 00143 }
unsigned char StartI2C | ( | unsigned char | device | ) |
void StopI2C | ( | void | ) |
unsigned char WriteI2C | ( | unsigned char | byte | ) |
Daten ueber I2C schreiben.
byte | daten |
Definiert in Zeile 72 der Datei i2c.c.
00073 { 00074 unsigned char i; 00075 00076 for (i=8; i>0; i--) 00077 { 00078 if ( byte & (1<<(i-1)) ) 00079 SDA_HI; 00080 else 00081 SDA_LO; 00082 SCL_TOGGLE; 00083 } 00084 SDA_HI; 00085 00086 SDA_DDR &= ~(1 << SDA); 00087 HDEL; 00088 SCL_HI; 00089 byte = SDA_PIN & (1 << SDA); 00090 00091 HDEL; 00092 SCL_LO; 00093 SDA_DDR |= (1 << SDA); 00094 HDEL; 00095 00096 return (byte == 0); 00097 }