1 .file "DS3231.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 DS3231_init 13 DS3231_init: 14 .LFB0: 15 .file 1 "src/DS3231.c" 1:src/DS3231.c **** #include "i2c.h" 2:src/DS3231.c **** #include "DS3231.h" 3:src/DS3231.c **** #include "pinout.h" 4:src/DS3231.c **** #include 5:src/DS3231.c **** 6:src/DS3231.c **** 7:src/DS3231.c **** 8:src/DS3231.c **** void DS3231_init(void){ 16 .loc 1 8 0 17 .cfi_startproc 18 /* prologue: function */ 19 /* frame size = 0 */ 20 /* stack size = 0 */ 21 .L__stack_usage = 0 22 0000 0895 ret 23 .cfi_endproc 24 .LFE0: 26 .global DS3231_seconds 28 DS3231_seconds: 29 .LFB1: 9:src/DS3231.c **** //i2c_start(DS3231_ADDRESS); 10:src/DS3231.c **** } 11:src/DS3231.c **** 12:src/DS3231.c **** 13:src/DS3231.c **** 14:src/DS3231.c **** int DS3231_seconds(void){ 30 .loc 1 14 0 31 .cfi_startproc 32 /* prologue: function */ 33 /* frame size = 0 */ 34 /* stack size = 0 */ 35 .L__stack_usage = 0 15:src/DS3231.c **** 16:src/DS3231.c **** char ret = i2c_start(DS3231_ADDRESS+I2C_WRITE); 36 .loc 1 16 0 37 0002 88E6 ldi r24,lo8(104) 38 0004 0E94 0000 call i2c_start 39 .LVL0: 17:src/DS3231.c **** /* 18:src/DS3231.c **** USART_Transmit_String(" Return "); 19:src/DS3231.c **** //putchar(ret); 20:src/DS3231.c **** USART_Transmit_String("\n"); 21:src/DS3231.c **** */ 22:src/DS3231.c **** /* 23:src/DS3231.c **** if(ret){ //failed 24:src/DS3231.c **** PORTB |= STATUS_LED_B; 25:src/DS3231.c **** i2c_stop(); 26:src/DS3231.c **** }else{ 27:src/DS3231.c **** // issuing start condition ok, device accessible 28:src/DS3231.c **** i2c_write(0x05); // write address = 5 29:src/DS3231.c **** i2c_write(0x75); // ret=0 -> Ok, ret=1 -> no ACK 30:src/DS3231.c **** i2c_stop(); 31:src/DS3231.c **** 32:src/DS3231.c **** i2c_start_wait(DS3231_ADDRESS+I2C_WRITE); // set device address and write mode 33:src/DS3231.c **** i2c_write(REG_SECONDS); // write address = 5 34:src/DS3231.c **** i2c_rep_start(DS3231_ADDRESS+I2C_READ); // set device address and read mode 35:src/DS3231.c **** ret = i2c_readNak(); // read one byte 36:src/DS3231.c **** i2c_stop(); 37:src/DS3231.c **** } 38:src/DS3231.c **** 39:src/DS3231.c **** return ret; 40:src/DS3231.c **** */ 41:src/DS3231.c **** } 40 .loc 1 41 0 41 0008 0895 ret 42 .cfi_endproc 43 .LFE1: 45 .Letext0: 46 .file 2 "inc/i2c.h" DEFINED SYMBOLS *ABS*:00000000 DS3231.c /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:2 *ABS*:0000003e __SP_H__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:3 *ABS*:0000003d __SP_L__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:4 *ABS*:0000003f __SREG__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:5 *ABS*:0000003b __RAMPZ__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:6 *ABS*:00000000 __tmp_reg__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:7 *ABS*:00000001 __zero_reg__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:13 .text:00000000 DS3231_init /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccV7Y02n.s:28 .text:00000002 DS3231_seconds UNDEFINED SYMBOLS i2c_start