| 
				     | 
				
| (5 intermediate revisions by one other user not shown) | 
| Line 22: | 
Line 22: | 
|   |  |   |  | 
|   | ==Detailed description==  |   | ==Detailed description==  | 
|   | + |  | 
|   | + |  | 
|   |  |   |  | 
|   |  |   |  | 
| Line 57: | 
Line 59: | 
|   |  |   |  | 
|   |  |   |  | 
| − |    | + | ''<span style="color:red;">No additional examples</span>''  | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − | ===PIC16F1937 Examples===  |   | 
| − |    |   | 
| − | The slave device is connected to a bank of switches, the master device to a bank of LEDs. The value of the switches is passed to the master LEDs.
  |   | 
| − | {{Fcfile|1. I2C Master Read.fcfx|Master Read Example}}
  |   | 
| − |    |   | 
| − | {{Fcfile|1. I2C Slave switches.fcfx|Slave Switches Example}}
  |   | 
| − | The slave device is connected to a bank of LEDs, the master device to a bank of switches. The value of the switches is passed to the slave LEDs.
  |   | 
| − | {{Fcfile|2. I2C Master Switches.fcfx|Master Send Example}}
  |   | 
| − |    |   | 
| − | {{Fcfile|2. I2C Slave LEDs.fcfx|Slave LEDs Example}}
  |   | 
| − | ===Arduino Uno Examples===
  |   | 
| − |    |   | 
| − | Example program showing how to use the I2C Slave on an AVR Arduino device.
  |   | 
| − | {{Fcfile|I2C Uno slave.fcfx|I2C Slave Arduino Uno Example}}
  |   | 
| − | ===ECIO40P Examples===
  |   | 
| − |    |   | 
| − | Example program showing how to use the I2C Slave on an ECIO40P device.
  |   | 
| − | {{Fcfile|ECIO40P_I2C_Master.fcfx|Master Example}}
  |   | 
| − |    |   | 
| − | {{Fcfile|ECIO40P_I2C_Slave.fcfx|Slave Example}}
  |   | 
|   |  |   |  | 
|   | ==Macro reference==  |   | ==Macro reference==  | 
|   |  |   |  | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  | + | ===Check_Status===  | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveByte'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Receives a byte from the I²C bus. Returns the data received, and sends either Ack or Nak Set parameter Last as: 1=Last=Nak, 0=Ack=More 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" | Last
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Used to signify the last byte when streaming incoming data. 0=Not last byte, 1=Last Byte 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − |    |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''TransmitByte'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Sends a byte on the I²C bus. Returns the acknowledge if any.  0 represents that data was acknowledged and 1 represents no acknowledge was detected. 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" | Data
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Data byte to send on the I²C bus. 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − |    |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Check_Status'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Returns the Slave Status. Bit 0 = 1 Indicates address/data byte available in the buffer to read Bit 5 = 1 Indicates that the last byte received or transmitted was data (else address) 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − |    |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Enables the I²C hardware and performs some initialization. Should be called at the start of the program or at least before any of the other I²C functions are called. 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − | ==Property reference==
  |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Bus Settings
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
  |   | 
| − | | width="90%" | Channel
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Channel selection 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
  |   | 
| − | | width="90%" | Baud Select
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Baud rate option selector 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
  |   | 
| − | | width="90%" | Baud Rate
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Baud rate to be used 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
  |   | 
| − | | width="90%" | Stop Delay
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not  a 10ms delay between an I2C stop event and the next I2C start event.  Most modern microcontrollers will not have a problem so this property can be disabled to speed up the  I2C communications.  
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Slave Setttings
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
  |   | 
| − | | width="90%" | Slave Address
  |   | 
| − | |-
  |   | 
| − | | colspan="2" |  
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
  |   | 
| − | | width="90%" | Mask
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | 0 - don't care; 1 - perform match; So address of 0x30 and mask of 0xF0 will allow the slave to respond to addresses of 0x30, 0x31, 0x32, …, 0x3F 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connections
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
  |   | 
| − | | width="90%" | SDA
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Pin used for SDA (data signal) 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
  |   | 
| − | | width="90%" | SCL
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Pin used for SCL (clock signal) 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
  |   | 
| − | | width="90%" | Label
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Label shown on the comms flasher on the simulation panel. 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
  |   | 
| − | | width="90%" | Scope Traces
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Selects if the scope traces are automatically generated or not 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
  |   | 
| − | | width="90%" | Console Data
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Selects if the console data is automatically generated or not 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
  |   | 
| − | | width="90%" | API
  |   | 
| − | |-
  |   | 
| − | | colspan="2" |  
  |   | 
| − | |}==Macro reference==
  |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveByte'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Receives a byte from the I²C bus. Returns the data received, and sends either Ack or Nak Set parameter Last as: 1=Last=Nak, 0=Ack=More 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" | Last
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Used to signify the last byte when streaming incoming data. 0=Not last byte, 1=Last Byte 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − |    |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''TransmitByte'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Sends a byte on the I²C bus. Returns the acknowledge if any.  0 represents that data was acknowledged and 1 represents no acknowledge was detected. 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" | Data
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Data byte to send on the I²C bus. 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − |    |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Check_Status'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Returns the Slave Status. Bit 0 = 1 Indicates address/data byte available in the buffer to read Bit 5 = 1 Indicates that the last byte received or transmitted was data (else address) 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − |    |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Enables the I²C hardware and performs some initialization. Should be called at the start of the program or at least before any of the other I²C functions are called. 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − |    |   | 
| − | ==Property reference==
  |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Bus Settings
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
  |   | 
| − | | width="90%" | Channel
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Channel selection 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
  |   | 
| − | | width="90%" | Baud Select
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Baud rate option selector 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
  |   | 
| − | | width="90%" | Baud Rate
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Baud rate to be used 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
  |   | 
| − | | width="90%" | Stop Delay
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not  a 10ms delay between an I2C stop event and the next I2C start event.  Most modern microcontrollers will not have a problem so this property can be disabled to speed up the  I2C communications.  
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Slave Setttings
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
  |   | 
| − | | width="90%" | Slave Address
  |   | 
| − | |-
  |   | 
| − | | colspan="2" |  
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
  |   | 
| − | | width="90%" | Mask
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | 0 - don't care; 1 - perform match; So address of 0x30 and mask of 0xF0 will allow the slave to respond to addresses of 0x30, 0x31, 0x32, …, 0x3F 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connections
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
  |   | 
| − | | width="90%" | SDA
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Pin used for SDA (data signal) 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
  |   | 
| − | | width="90%" | SCL
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Pin used for SCL (clock signal) 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
  |   | 
| − | | width="90%" | Label
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Label shown on the comms flasher on the simulation panel. 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
  |   | 
| − | | width="90%" | Scope Traces
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Selects if the scope traces are automatically generated or not 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
  |   | 
| − | | width="90%" | Console Data
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Selects if the console data is automatically generated or not 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
  |   | 
| − | | width="90%" | API
  |   | 
| − | |-
  |   | 
| − | | colspan="2" |  
  |   | 
| − | |}==Macro reference==
  |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveByte'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Receives a byte from the I²C bus. Returns the data received, and sends either Ack or Nak Set parameter Last as: 1=Last=Nak, 0=Ack=More 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" | Last
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Used to signify the last byte when streaming incoming data. 0=Not last byte, 1=Last Byte 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − |    |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''TransmitByte'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Sends a byte on the I²C bus. Returns the acknowledge if any.  0 represents that data was acknowledged and 1 represents no acknowledge was detected. 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" | Data
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Data byte to send on the I²C bus. 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − |    |   | 
| − |    |   | 
|   | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"  |   | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"  | 
|   | |-  |   | |-  | 
| Line 438: | 
Line 77: | 
|   |  |   |  | 
|   |  |   |  | 
|   | + | ===Initialise===  | 
|   | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"  |   | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"  | 
|   | |-  |   | |-  | 
| Line 451: | 
Line 91: | 
|   |  |   |  | 
|   |  |   |  | 
| − |    | + | ===ReceiveByte===  | 
| − |    |   | 
| − | ==Property reference==  |   | 
| − |    |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Bus Settings
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
  |   | 
| − | | width="90%" | Channel
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Channel selection 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
  |   | 
| − | | width="90%" | Baud Select
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Baud rate option selector 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
  |   | 
| − | | width="90%" | Baud Rate
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Baud rate to be used 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
  |   | 
| − | | width="90%" | Stop Delay
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not  a 10ms delay between an I2C stop event and the next I2C start event.  Most modern microcontrollers will not have a problem so this property can be disabled to speed up the  I2C communications.  
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Slave Setttings
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
  |   | 
| − | | width="90%" | Slave Address
  |   | 
| − | |-
  |   | 
| − | | colspan="2" |  
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
  |   | 
| − | | width="90%" | Mask
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | 0 - don't care; 1 - perform match; So address of 0x30 and mask of 0xF0 will allow the slave to respond to addresses of 0x30, 0x31, 0x32, …, 0x3F 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connections
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
  |   | 
| − | | width="90%" | SDA
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Pin used for SDA (data signal) 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
  |   | 
| − | | width="90%" | SCL
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Pin used for SCL (clock signal) 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]]
  |   | 
| − | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
  |   | 
| − | | width="90%" | Label
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Label shown on the comms flasher on the simulation panel. 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
  |   | 
| − | | width="90%" | Scope Traces
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Selects if the scope traces are automatically generated or not 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
  |   | 
| − | | width="90%" | Console Data
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Selects if the console data is automatically generated or not 
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
  |   | 
| − | | width="90%" | API
  |   | 
| − | |-
  |   | 
| − | | colspan="2" |  
  |   | 
| − | |}==Macro reference==
  |   | 
| − |    |   | 
|   | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"  |   | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"  | 
|   | |-  |   | |-  | 
| Line 556: | 
Line 110: | 
|   |  |   |  | 
|   |  |   |  | 
|   | + | ===TransmitByte===  | 
|   | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"  |   | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"  | 
|   | |-  |   | |-  | 
| Line 572: | 
Line 127: | 
|   | | width="90%" style="border-top: 2px solid #000;" | ''Return''  |   | | width="90%" style="border-top: 2px solid #000;" | ''Return''  | 
|   | |}  |   | |}  | 
| − | 
  |   | 
| − | 
  |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Check_Status'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Returns the Slave Status. Bit 0 = 1 Indicates address/data byte available in the buffer to read Bit 5 = 1 Indicates that the last byte received or transmitted was data (else address) 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − | 
  |   | 
| − | 
  |   | 
| − | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
  |   | 
| − | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
  |   | 
| − | |-
  |   | 
| − | | colspan="2" | Enables the I²C hardware and performs some initialization. Should be called at the start of the program or at least before any of the other I²C functions are called. 
  |   | 
| − | |-
  |   | 
| − | |-
  |   | 
| − | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
  |   | 
| − | | width="90%" style="border-top: 2px solid #000;" | ''Return''
  |   | 
| − | |}
  |   | 
| − | 
  |   | 
| − | 
  |   | 
|   |  |   |  | 
|   |  |   |  |