1 .file "i2c.c" 2 __SP_H__ = 0x3e 3 __SP_L__ = 0x3d 4 __SREG__ = 0x3f 5 __RAMPZ__ = 0x3b 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .text 9 .Ltext0: 10 .cfi_sections .debug_frame 11 .global i2c_init 13 i2c_init: 14 .LFB0: 15 .file 1 "src/i2c.c" 1:src/i2c.c **** #include "i2c.h" 2:src/i2c.c **** #include "pinout.h" 3:src/i2c.c **** #include 4:src/i2c.c **** #include 5:src/i2c.c **** 6:src/i2c.c **** 7:src/i2c.c **** void i2c_init(void) 8:src/i2c.c **** { 16 .loc 1 8 0 17 .cfi_startproc 18 /* prologue: function */ 19 /* frame size = 0 */ 20 /* stack size = 0 */ 21 .L__stack_usage = 0 9:src/i2c.c **** /* initialize TWI clock: 100 kHz clock, TWPS = 0 => prescaler = 1 */ 10:src/i2c.c **** 11:src/i2c.c **** TWSR = 1; /* no prescaler */ 22 .loc 1 11 0 23 0000 81E0 ldi r24,lo8(1) 24 0002 8093 B900 sts 185,r24 12:src/i2c.c **** TWBR = ((F_CPU/SCL_CLOCK)-16)/2; /* must be > 10 for stable operation */ 25 .loc 1 12 0 26 0006 8BE4 ldi r24,lo8(75) 27 0008 8093 B800 sts 184,r24 28 000c 0895 ret 29 .cfi_endproc 30 .LFE0: 32 .global i2c_start 34 i2c_start: 35 .LFB1: 13:src/i2c.c **** 14:src/i2c.c **** } 15:src/i2c.c **** 16:src/i2c.c **** 17:src/i2c.c **** unsigned char i2c_start(unsigned char address){ 36 .loc 1 17 0 37 .cfi_startproc 38 .LVL0: 39 /* prologue: function */ 40 /* frame size = 0 */ 41 /* stack size = 0 */ 42 .L__stack_usage = 0 18:src/i2c.c **** char DATA = 0b10011000; 19:src/i2c.c **** //Send START condition 20:src/i2c.c **** TWCR = (1<