211
2467S–AVR–07/09
ATmega128
Even though this example is simple, it shows the principles involved in all TWI transmissions.
These can be summarized as follows:
•
When the TWI has finished an operation and expects application response, the TWINT flag
is set. The SCL line is pulled low until TWINT is cleared.
•
When the TWINT flag is set, the user must update all TWI Registers with the value relevant
for the next TWI bus cycle. As an example, TWDR must be loaded with the value to be
transmitted in the next bus cycle.
•
After all TWI Register updates and other pending application software tasks have been
completed, TWCR is written. When writing TWCR, the TWINT bit should be set. Writing a
one to TWINT clears the flag. The TWI will then commence executing whatever operation
was specified by the TWCR setting.
In the following an assembly and C implementation of the example is given. Note that the code
below assumes that several definitions have been made for example by using include-files.