I2C_SW modul


      Az alábbi modul a PIC MSSP periferia felhasználása nélkül valósít meg I2C kommunikációt master módban.

Szükséges definiciók a főprogramban

xtal_freq       EQU     4000000                 ; oscillátor frekvencia
core_freq       EQU     xtal_freq/4             ; Az MCU magjának frekvenciája.

#define         I2C_SCL         PORTA,0         ; out
#define         I2C_SDA         PORTA,1         ; in/out

Opcionális definiciók a főprogramban

#define DEBUG                           ; Ha definiálva van, akkor forditási időben
                                        ; információkat kapunk.
#define NO_I2C                          ; A simulálához kiiktatja az I2C kezelest

Makrók

Név Paraméter Leirás
I2C_INIT I2C_speed Inicializálja az I2C modult
speed Kivant buszsebesseg Hz-ben, pl.:
I2C_INIT 100 KHz
I2C_STARTCOND Start kondició kiadása
I2C_RESTARTCOND Re-Start kondició kiadása
I2C_STOPCOND Stop kondició kiadása
I2C_SEND Adatbyte küldése
Az adatot a W-be kell rakni, visszatéréskor Z=0, ha a fogadó oldal nyugtázott (ACK), Z=1, ha a fogadó oldal nem nyugtazot (no ACK).
I2C_RECEIVE Adatbyte fogadása
A fogadott byte a W-be kerül.
I2C_ACK Adatbyte fogadásának nyugtázása
C=0 - no ACK küldése,
C=1 - ACK küldése