diff options
Diffstat (limited to 'build/default/production/i2c.i')
-rwxr-xr-x | build/default/production/i2c.i | 65 |
1 files changed, 32 insertions, 33 deletions
diff --git a/build/default/production/i2c.i b/build/default/production/i2c.i index 2920dec..6e7f8bb 100755 --- a/build/default/production/i2c.i +++ b/build/default/production/i2c.i @@ -1752,56 +1752,55 @@ extern __bank0 __bit __timeout; void I2C_Master_Init(const unsigned long freq_K) { - TRISC3 = 1; TRISC4 = 1; + TRISC3 = 1; + TRISC4 = 1; - SSPCON = 0b00101000; - SSPCON2 = 0b00000000; + SSPCON = 0b00101000; + SSPCON2 = 0b00000000; - SSPADD = (20000000/(4*freq_K*100))-1; - SSPSTAT = 0b00000000; + + SSPADD = 49; + + + SMP = 1; + CKP = 0; } -void I2C_Master_Wait() -{ - while ( (SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100) ) ; +void I2C_Master_Wait() { + while ((SSPCON2 & 0b00011111) || (SSPSTAT & 0b00000100)); } -void I2C_Master_Start() -{ - I2C_Master_Wait(); - SEN = 1; +void I2C_Master_Start() { + I2C_Master_Wait(); + SEN = 1; } -void I2C_Master_Repeated_Start() -{ +void I2C_Master_Repeated_Start() { I2C_Master_Wait(); RSEN = 1; } -void I2C_Master_Stop() -{ - I2C_Master_Wait(); - PEN = 1; +void I2C_Master_Stop() { + I2C_Master_Wait(); + PEN = 1; } -void I2C_Master_Write(unsigned data) -{ - I2C_Master_Wait(); - SSPBUF = data; +void I2C_Master_Write(unsigned data) { + I2C_Master_Wait(); + SSPBUF = data; } -unsigned short I2C_Master_Read(unsigned short ack) -{ - unsigned short incoming; - I2C_Master_Wait(); - RCEN = 1; +unsigned short I2C_Master_Read(unsigned short ack) { + unsigned short incoming; + I2C_Master_Wait(); + RCEN = 1; - I2C_Master_Wait(); - incoming = SSPBUF; + I2C_Master_Wait(); + incoming = SSPBUF; - I2C_Master_Wait(); - ACKDT = (ack)?0:1; - ACKEN = 1; + I2C_Master_Wait(); + ACKDT = (ack) ? 0 : 1; + ACKEN = 1; - return incoming; + return incoming; } |