You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

115 lines
4.7 KiB
Plaintext

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 <avr/io.h>
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