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/outOpcioná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 kezelestMakró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 KHzI2C_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