CALIBRE
4.2.2.I2C Status Checking Routine
Function definition: | int getstatus(void) |
Usage: | i2cstatus = getstatus(); |
Function: | function to read status register of the Parallel I2C Communications Adapter. |
Parameters are: | None |
Value Returned: | int i2cstatus |
I2C status on exit:
where i2cstatus is an integer from 0x00 to 0xFF which indicates the current status of Parallel I2C Communications Adapter. See Appendix A for details of the status values returned.
the status of the Parallel I2C Communications Adapter will not be affected by using the getstatus function.
Example Usage: (see also sample programs) main()
{
int i2cstatus;
i2ctatus = getstatus ();
printf("Parallel I2C Communications Adapter Status = %x\n", i2cstatus);
}
/*This will read the Parallel I2C Communications Adapter's current status*/
4.2.3.I2C Address and Start Sending Routine
Function definition: | int sendaddress (int slaveaddress, int setnack) |
Usage: | i2cstatus = sendaddress(slaveaddress, setnack) |
Function: | This is the procedure to send Start and slave address of device which is to be |
| communicated with. |
Parameters are: | int slaveaddress |
| The 8 bit slave address of the device which is to be communicated with. This |
| will be an even number if the adapter is to write to the slave, add 1 to get an |
| odd number if the adapter is to read from the slave. |
| int setnack |
| This controls whether the Parallel I2C Communications Adapter transmits an |
| Acknowledge down the I2C Bus on reception of a byte. The last byte received |
| during a transfer must not be acknowledged. If setnack = 0 then acknowledge |
| is enabled, if setnack = 1 then acknowledge is disabled. Therefore, if a read |
| (odd numbered) address is being sent AND only 1 byte is to be read, setnack |
| should be set = 1; in all other cases it must be clear = 0. |
Value Returned: | int i2cstatus |
| The value returned depends on whether the Start and address were sent. |
| If the start and address have been sent then the status returned will either be |
| 0x00 (bus busy data sent and acknowledged), or 0x08 (bus busy, data sent |
| but not acknowledged). |
| If the start or the address cannot be sent (either the bus remained busy or the |
| address did not get sent) then the last status read IORed with 0x8000 will be |
| returned. |
Issue 1.3 | Page 8 |
22/07/99