1 .file "adc.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 adc_setup 13 adc_setup: 14 .LFB0: 15 .file 1 "src/adc.c" 1:src/adc.c **** #include "adc.h" 2:src/adc.c **** #include "pinout.h" 3:src/adc.c **** #include 4:src/adc.c **** 5:src/adc.c **** void adc_setup(void){ 16 .loc 1 5 0 17 .cfi_startproc 18 /* prologue: function */ 19 /* frame size = 0 */ 20 /* stack size = 0 */ 21 .L__stack_usage = 0 6:src/adc.c **** ADMUX = (1 << REFS0); //Versorgungsspannung definieren 22 .loc 1 6 0 23 0000 80E4 ldi r24,lo8(64) 24 0002 8093 7C00 sts 124,r24 7:src/adc.c **** ADCSRA|= (1 << ADEN) //enable bit für adc 25 .loc 1 7 0 26 0006 EAE7 ldi r30,lo8(122) 27 0008 F0E0 ldi r31,0 28 000a 8081 ld r24,Z 29 000c 8368 ori r24,lo8(-125) 30 000e 8083 st Z,r24 31 0010 0895 ret 32 .cfi_endproc 33 .LFE0: 35 .global adc_read 37 adc_read: 38 .LFB1: 8:src/adc.c **** | (1 << ADPS0) //setze Prescaler für Abtastfrequenz 9:src/adc.c **** | (1 << ADPS1) //setze Prescaler für Abtastfrequenz 10:src/adc.c **** | (0 << ADPS2); //setze Prescaler für Abtastfrequenz 11:src/adc.c **** } 12:src/adc.c **** 13:src/adc.c **** 14:src/adc.c **** 15:src/adc.c **** int adc_read(unsigned char adc_pin) { 39 .loc 1 15 0 40 .cfi_startproc 41 .LVL0: 42 /* prologue: function */ 43 /* frame size = 0 */ 44 /* stack size = 0 */ 45 .L__stack_usage = 0 16:src/adc.c **** ADMUX &= 0b11110000; //Alte Port-Select Flags löschen 46 .loc 1 16 0 47 0012 9091 7C00 lds r25,124 48 0016 907F andi r25,lo8(-16) 49 0018 9093 7C00 sts 124,r25 17:src/adc.c **** ADMUX|=adc_pin; //Neuen Eingang setzen 50 .loc 1 17 0 51 001c 9091 7C00 lds r25,124 52 0020 982B or r25,r24 53 0022 9093 7C00 sts 124,r25 18:src/adc.c **** ADCSRA |= (1 << ADSC); // eine Wandlung "single conversion" 54 .loc 1 18 0 55 0026 8091 7A00 lds r24,122 56 .LVL1: 57 002a 8064 ori r24,lo8(64) 58 002c 8093 7A00 sts 122,r24 59 .L4: 19:src/adc.c **** while (ADCSRA & (1 << ADSC) ) { // auf Abschluss der Konvertierung warten 60 .loc 1 19 0 discriminator 1 61 0030 8091 7A00 lds r24,122 62 0034 86FD sbrc r24,6 63 0036 00C0 rjmp .L4 20:src/adc.c **** } 21:src/adc.c **** int ADCresult = ADCL; 64 .loc 1 21 0 65 0038 2091 7800 lds r18,120 66 .LVL2: 22:src/adc.c **** ADCresult += (ADCH << 8); 67 .loc 1 22 0 68 003c 8091 7900 lds r24,121 69 .LVL3: 70 0040 90E0 ldi r25,0 71 0042 982F mov r25,r24 72 0044 8827 clr r24 73 .LVL4: 23:src/adc.c **** return ADCresult; 24:src/adc.c **** } 74 .loc 1 24 0 75 0046 820F add r24,r18 76 0048 911D adc r25,__zero_reg__ 77 004a 0895 ret 78 .cfi_endproc 79 .LFE1: 81 .Letext0: 82 .file 2 "/usr/local/CrossPack-AVR-20131216/avr/include/stdint.h" DEFINED SYMBOLS *ABS*:00000000 adc.c /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:2 *ABS*:0000003e __SP_H__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:3 *ABS*:0000003d __SP_L__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:4 *ABS*:0000003f __SREG__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:5 *ABS*:0000003b __RAMPZ__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:6 *ABS*:00000000 __tmp_reg__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:7 *ABS*:00000001 __zero_reg__ /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:13 .text:00000000 adc_setup /var/folders/vp/mj8sv_kj3c1gtbdcbb9v8gb80000gn/T//ccQrSfzE.s:37 .text:00000012 adc_read NO UNDEFINED SYMBOLS