202 lines
8.3 KiB
Plaintext
202 lines
8.3 KiB
Plaintext
|
|
1 .file "main.c"
|
||
|
|
2 __SP_L__ = 0x3d
|
||
|
|
3 __SREG__ = 0x3f
|
||
|
|
4 __tmp_reg__ = 0
|
||
|
|
5 __zero_reg__ = 1
|
||
|
|
6 .text
|
||
|
|
7 .Ltext0:
|
||
|
|
8 .cfi_sections .debug_frame
|
||
|
|
9 .global adc_setup
|
||
|
|
11 adc_setup:
|
||
|
|
12 .LFB0:
|
||
|
|
13 .file 1 "main.c"
|
||
|
|
1:main.c **** /* ******************************************************** *
|
||
|
|
2:main.c **** *
|
||
|
|
3:main.c **** * Simple program with avr-gcc and ATtiny13
|
||
|
|
4:main.c **** * -------------------------------------------------------- *
|
||
|
|
5:main.c **** * Created on: 07.06.2016
|
||
|
|
6:main.c **** * Author: Paolo Iocco
|
||
|
|
7:main.c **** * ******************************************************** */
|
||
|
|
8:main.c **** /* ******************************************************** *
|
||
|
|
9:main.c **** ATtiny 13/45/85 Pin map
|
||
|
|
10:main.c **** +--\/--+
|
||
|
|
11:main.c **** /Reset ADC0 PB5 -|1° 8|- Vcc
|
||
|
|
12:main.c **** ADC3 PB3 -|2 7|- PB2 ADC1 SCK
|
||
|
|
13:main.c **** ADC2 PB4 -|3 6|- PB1 OC0B MISO AIN1
|
||
|
|
14:main.c **** GND -|4 5|- PB0 OC0A MOSI AIN0
|
||
|
|
15:main.c **** +------+
|
||
|
|
16:main.c **** * ********************************************************* */
|
||
|
|
17:main.c ****
|
||
|
|
18:main.c **** #include "main.h"
|
||
|
|
19:main.c ****
|
||
|
|
20:main.c **** void adc_setup (void)
|
||
|
|
21:main.c **** {
|
||
|
|
14 .loc 1 21 0
|
||
|
|
15 .cfi_startproc
|
||
|
|
16 /* prologue: function */
|
||
|
|
17 /* frame size = 0 */
|
||
|
|
18 /* stack size = 0 */
|
||
|
|
19 .L__stack_usage = 0
|
||
|
|
22:main.c **** // Set the ADC input to PB2/ADC1
|
||
|
|
23:main.c **** ADMUX |= (1 << MUX0);
|
||
|
|
20 .loc 1 23 0
|
||
|
|
21 0000 389A sbi 0x7,0
|
||
|
|
24:main.c **** ADMUX |= (1 << ADLAR);
|
||
|
|
22 .loc 1 24 0
|
||
|
|
23 0002 3D9A sbi 0x7,5
|
||
|
|
25:main.c **** // Set the prescaler to clock/128 & enable ADC
|
||
|
|
26:main.c **** ADCSRA |= (1 << ADPS1) | (1 << ADPS0) | (1 << ADEN);
|
||
|
|
24 .loc 1 26 0
|
||
|
|
25 0004 86B1 in r24,0x6
|
||
|
|
26 0006 8368 ori r24,lo8(-125)
|
||
|
|
27 0008 86B9 out 0x6,r24
|
||
|
|
28 000a 0895 ret
|
||
|
|
29 .cfi_endproc
|
||
|
|
30 .LFE0:
|
||
|
|
32 .global adc_read
|
||
|
|
34 adc_read:
|
||
|
|
35 .LFB1:
|
||
|
|
27:main.c **** }
|
||
|
|
28:main.c ****
|
||
|
|
29:main.c **** int adc_read (void)
|
||
|
|
30:main.c **** {
|
||
|
|
36 .loc 1 30 0
|
||
|
|
37 .cfi_startproc
|
||
|
|
38 /* prologue: function */
|
||
|
|
39 /* frame size = 0 */
|
||
|
|
40 /* stack size = 0 */
|
||
|
|
41 .L__stack_usage = 0
|
||
|
|
31:main.c **** // Start the conversion
|
||
|
|
32:main.c **** ADCSRA |= (1 << ADSC);
|
||
|
|
42 .loc 1 32 0
|
||
|
|
43 000c 369A sbi 0x6,6
|
||
|
|
44 .L3:
|
||
|
|
33:main.c **** // Wait for it to finish
|
||
|
|
34:main.c **** while (ADCSRA & (1 << ADSC));
|
||
|
|
45 .loc 1 34 0 discriminator 1
|
||
|
|
46 000e 3699 sbic 0x6,6
|
||
|
|
47 0010 00C0 rjmp .L3
|
||
|
|
35:main.c **** return ADCH;
|
||
|
|
48 .loc 1 35 0
|
||
|
|
49 0012 85B1 in r24,0x5
|
||
|
|
36:main.c **** }
|
||
|
|
50 .loc 1 36 0
|
||
|
|
51 0014 90E0 ldi r25,0
|
||
|
|
52 0016 0895 ret
|
||
|
|
53 .cfi_endproc
|
||
|
|
54 .LFE1:
|
||
|
|
56 .global pwm_setup
|
||
|
|
58 pwm_setup:
|
||
|
|
59 .LFB2:
|
||
|
|
37:main.c ****
|
||
|
|
38:main.c **** void pwm_setup (void)
|
||
|
|
39:main.c **** {
|
||
|
|
60 .loc 1 39 0
|
||
|
|
61 .cfi_startproc
|
||
|
|
62 /* prologue: function */
|
||
|
|
63 /* frame size = 0 */
|
||
|
|
64 /* stack size = 0 */
|
||
|
|
65 .L__stack_usage = 0
|
||
|
|
40:main.c **** // Set Timer 0 prescaler to clock/8.
|
||
|
|
41:main.c **** // At 9.6 MHz this is 1.2 MHz.
|
||
|
|
42:main.c **** TCCR0B |= (1 << CS01) | (1 << CS00);
|
||
|
|
66 .loc 1 42 0
|
||
|
|
67 0018 83B7 in r24,0x33
|
||
|
|
68 001a 8360 ori r24,lo8(3)
|
||
|
|
69 001c 83BF out 0x33,r24
|
||
|
|
43:main.c **** // Set to 'Fast PWM' mode
|
||
|
|
44:main.c **** TCCR0A |= (1 << WGM01) | (1 << WGM00);
|
||
|
|
70 .loc 1 44 0
|
||
|
|
71 001e 8FB5 in r24,0x2f
|
||
|
|
72 0020 8360 ori r24,lo8(3)
|
||
|
|
73 0022 8FBD out 0x2f,r24
|
||
|
|
45:main.c **** // Clear OC0B output on compare match, upwards counting.
|
||
|
|
46:main.c **** TCCR0A |= (1 << COM0B1);
|
||
|
|
74 .loc 1 46 0
|
||
|
|
75 0024 8FB5 in r24,0x2f
|
||
|
|
76 0026 8062 ori r24,lo8(32)
|
||
|
|
77 0028 8FBD out 0x2f,r24
|
||
|
|
78 002a 0895 ret
|
||
|
|
79 .cfi_endproc
|
||
|
|
80 .LFE2:
|
||
|
|
82 .global pwm_write
|
||
|
|
84 pwm_write:
|
||
|
|
85 .LFB3:
|
||
|
|
47:main.c **** }
|
||
|
|
48:main.c ****
|
||
|
|
49:main.c **** void pwm_write (int val)
|
||
|
|
50:main.c **** {
|
||
|
|
86 .loc 1 50 0
|
||
|
|
87 .cfi_startproc
|
||
|
|
88 .LVL0:
|
||
|
|
89 /* prologue: function */
|
||
|
|
90 /* frame size = 0 */
|
||
|
|
91 /* stack size = 0 */
|
||
|
|
92 .L__stack_usage = 0
|
||
|
|
51:main.c **** OCR0B = val;
|
||
|
|
93 .loc 1 51 0
|
||
|
|
94 002c 89BD out 0x29,r24
|
||
|
|
95 002e 0895 ret
|
||
|
|
96 .cfi_endproc
|
||
|
|
97 .LFE3:
|
||
|
|
99 .section .text.startup,"ax",@progbits
|
||
|
|
100 .global main
|
||
|
|
102 main:
|
||
|
|
103 .LFB4:
|
||
|
|
52:main.c **** }
|
||
|
|
53:main.c ****
|
||
|
|
54:main.c **** int main (void)
|
||
|
|
55:main.c **** {
|
||
|
|
104 .loc 1 55 0
|
||
|
|
105 .cfi_startproc
|
||
|
|
106 /* prologue: function */
|
||
|
|
107 /* frame size = 0 */
|
||
|
|
108 /* stack size = 0 */
|
||
|
|
109 .L__stack_usage = 0
|
||
|
|
56:main.c **** int adc_in;
|
||
|
|
57:main.c **** // LED is an output.
|
||
|
|
58:main.c **** DDRB |= (1 << LED);
|
||
|
|
110 .loc 1 58 0
|
||
|
|
111 0000 BB9A sbi 0x17,3
|
||
|
|
59:main.c **** adc_setup();
|
||
|
|
112 .loc 1 59 0
|
||
|
|
113 0002 00D0 rcall adc_setup
|
||
|
|
114 .LVL1:
|
||
|
|
60:main.c **** pwm_setup();
|
||
|
|
115 .loc 1 60 0
|
||
|
|
116 0004 00D0 rcall pwm_setup
|
||
|
|
117 .LVL2:
|
||
|
|
118 .L9:
|
||
|
|
61:main.c **** while (1) {
|
||
|
|
62:main.c **** // Get the ADC value
|
||
|
|
63:main.c **** adc_in = adc_read();
|
||
|
|
119 .loc 1 63 0 discriminator 1
|
||
|
|
120 0006 00D0 rcall adc_read
|
||
|
|
121 .LVL3:
|
||
|
|
122 .LBB4:
|
||
|
|
123 .LBB5:
|
||
|
|
51:main.c **** }
|
||
|
|
124 .loc 1 51 0 discriminator 1
|
||
|
|
125 0008 89BD out 0x29,r24
|
||
|
|
126 000a 00C0 rjmp .L9
|
||
|
|
127 .LBE5:
|
||
|
|
128 .LBE4:
|
||
|
|
129 .cfi_endproc
|
||
|
|
130 .LFE4:
|
||
|
|
132 .text
|
||
|
|
133 .Letext0:
|
||
|
|
134 .file 2 "a:\\hardware\\tools\\avr\\avr\\include\\stdint.h"
|
||
|
|
DEFINED SYMBOLS
|
||
|
|
*ABS*:00000000 main.c
|
||
|
|
C:\Users\q242695\AppData\Local\Temp\ccY7rbVv.s:2 *ABS*:0000003d __SP_L__
|
||
|
|
C:\Users\q242695\AppData\Local\Temp\ccY7rbVv.s:3 *ABS*:0000003f __SREG__
|
||
|
|
C:\Users\q242695\AppData\Local\Temp\ccY7rbVv.s:4 *ABS*:00000000 __tmp_reg__
|
||
|
|
C:\Users\q242695\AppData\Local\Temp\ccY7rbVv.s:5 *ABS*:00000001 __zero_reg__
|
||
|
|
C:\Users\q242695\AppData\Local\Temp\ccY7rbVv.s:11 .text:00000000 adc_setup
|
||
|
|
C:\Users\q242695\AppData\Local\Temp\ccY7rbVv.s:34 .text:0000000c adc_read
|
||
|
|
C:\Users\q242695\AppData\Local\Temp\ccY7rbVv.s:58 .text:00000018 pwm_setup
|
||
|
|
C:\Users\q242695\AppData\Local\Temp\ccY7rbVv.s:84 .text:0000002c pwm_write
|
||
|
|
C:\Users\q242695\AppData\Local\Temp\ccY7rbVv.s:102 .text.startup:00000000 main
|
||
|
|
|
||
|
|
NO UNDEFINED SYMBOLS
|