Libraryfunktionen zu I2C_Lib.c

void v_InitI2C(void)

v_InitI2C: Mit dieser Funktion wird der I²C-Part initalisiert. Als Quarz wird der RC-Oscillator angenommen. Die Datenübertragung wird auf 100 kHz eingestellt. Wird eine andere CPU-Frequenz verwendet, müssen die SFRs I2SCLL und SCLH ange­passt werden. Außerdem wird der Interrupt freigegeben.

Rückgabewert: –

Verwendete Funktionen: – 

Verwendete globale Variablen: Slave, ucI2CError

Verwendete Definitionen: (I2C_OK, NACK_WRADR, NACK_WRDATA,

                                            UNDEFINED)

C-Sourcemodul: I2C_Lib.c

 

 

void v_SetNextI2CVal(unsigned char ucVal)

v_SetNextI2CVal: Mit Hilfe dieser Funktion werden Daten in die Struktur „Slave“ ge­schrieben. Es wird der Inhalt von „ucVal“ in das Element „Slave.Val[]“ geschrieben. Der Offset auf das Array wird automatisch nach dem Schreiben um Eins erhöht.

F Es können maximal 64 Bytes in das Array geschrieben werden. Es findet keine Überprüfung statt, ob ein Überlauf des Arrays stattfindet. !!

Rückgabewert: –

Verwendete Funktionen: – 

Verwendete globale Variablen: Slave

Verwendete Definitionen: (I2C_OK, NACK_WRADR, NACK_WRDATA,

                                            UNDEFINED)

C-Sourcemodul: I2C_Lib.c

 

void v_StartI2CandWait(void)

v_StartI2CandWait: Die Funktion startet den Sendevorgang beim I²C-Bus. Die Funk­tion wartet solange, bis alle Daten übertragen bzw. empfangen wurden, bzw. bis ein Feh­ler auf dem I²C-Bus aufgetreten ist. Das Ergebnis der Übertragung ist in der glo­ba­len Variablen „ucI2CError“ abgelegt. Das Ergebnis kann eine der unten aufge­führ­ten Definitionen sein.

Rückgabewert: –

Verwendete Funktionen: – 

Verwendete globale Variablen: btI2cFinished, ucI2CError

Verwendete Definitionen: (I2C_OK, NACK_WRADR, NACK_WRDATA,

                                            UNDEFINED)

C-Sourcemodul: I2C_Lib.c

 

void v_StartI2CTrans(void)

v_StartI2CTrans: Die Funktion Funktion startet den Sendevorgang beim I²C-Bus und setzt die glo­ba­le Variable „ucI2CError“ auf den Wert „I2C_OK“.

Rückgabewert: –

Verwendete Funktionen: – 

Verwendete globale Variablen: Slave, ucI2CError

Verwendete Definitionen: (I2C_OK, NACK_WRADR, NACK_WRDATA,

                                            UNDEFINED)

C-Sourcemodul: I2C_Lib.c

 

void v_WaitI2CFinish(void)

v_WaitI2CFinish: Die Funktion wartet, bis der Sende-/Empfangsvorgang auf dem I²C-Bus beendet ist.

Rückgabewert: –

Verwendete Funktionen: – 

Verwendete globale Variablen: Slave, ucI2CError

Verwendete Definitionen: (I2C_OK, NACK_WRADR, NACK_WRDATA,

                                            UNDEFINED)

C-Sourcemodul: I2C_Lib.c

 

void void v_I2CInterrupt(void) interrupt 6

v_I2CInterrupt: Die ISR wertet das SFR I2STAT aus und sendet bzw. empfängt Da­ten. Die Daten werden aus der Struktur „Slave“ gelesen bzw. in das Element „Slave.Val[]“ geschrieben. Wird ein Fehler auf dem I²C-Bus erkannt, z. B. fehlendes ACK, wird die Variable „ucI2CError“ mit einer der unten aufgeführten Defini­tio­nen gesetzt. Nach dem letztem gesendeten bzw. empfangenen Byte wird die Stopbe­dingung gesetzt.

F !! Beim Empfangen der Daten wird nicht überprüft, ob über das Array Slave.Val[]  hinaus geschrieben wird. !!

Rückgabewert: –

Verwendete Funktionen: – 

Verwendete globale Variablen: Slave, ucI2CError

Verwendete Definitionen: (NACK_WRADR, NACK_WRDATA,

                                            UNDEFINED)

C-Sourcemodul: I2C_Lib.c