?? main.lss
字號:
main.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000530 00000000 00000000 00000094 2**0
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000000 00800060 00000530 000005c4 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .bss 00000004 00800060 00800060 000005c4 2**0
ALLOC
3 .noinit 00000000 00800064 00800064 000005c4 2**0
CONTENTS
4 .eeprom 00000000 00810000 00810000 000005c4 2**0
CONTENTS
5 .debug_aranges 0000003c 00000000 00000000 000005c4 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_pubnames 000000fb 00000000 00000000 00000600 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_info 0000042f 00000000 00000000 000006fb 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_abbrev 000001bf 00000000 00000000 00000b2a 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_line 00000407 00000000 00000000 00000ce9 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_str 00000144 00000000 00000000 000010f0 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26
2: 2b c0 rjmp .+86 ; 0x5a
4: 2a c0 rjmp .+84 ; 0x5a
6: 29 c0 rjmp .+82 ; 0x5a
8: 28 c0 rjmp .+80 ; 0x5a
a: 27 c0 rjmp .+78 ; 0x5a
c: 26 c0 rjmp .+76 ; 0x5a
e: 25 c0 rjmp .+74 ; 0x5a
10: 24 c0 rjmp .+72 ; 0x5a
12: 23 c0 rjmp .+70 ; 0x5a
14: 22 c0 rjmp .+68 ; 0x5a
16: 21 c0 rjmp .+66 ; 0x5a
18: 20 c0 rjmp .+64 ; 0x5a
1a: 1f c0 rjmp .+62 ; 0x5a
1c: 1e c0 rjmp .+60 ; 0x5a
1e: 1d c0 rjmp .+58 ; 0x5a
20: 1c c0 rjmp .+56 ; 0x5a
22: 1b c0 rjmp .+54 ; 0x5a
24: 1a c0 rjmp .+52 ; 0x5a
00000026 <__ctors_end>:
26: 11 24 eor r1, r1
28: 1f be out 0x3f, r1 ; 63
2a: cf e5 ldi r28, 0x5F ; 95
2c: d4 e0 ldi r29, 0x04 ; 4
2e: de bf out 0x3e, r29 ; 62
30: cd bf out 0x3d, r28 ; 61
00000032 <__do_copy_data>:
32: 10 e0 ldi r17, 0x00 ; 0
34: a0 e6 ldi r26, 0x60 ; 96
36: b0 e0 ldi r27, 0x00 ; 0
38: e0 e3 ldi r30, 0x30 ; 48
3a: f5 e0 ldi r31, 0x05 ; 5
3c: 02 c0 rjmp .+4 ; 0x42
0000003e <.do_copy_data_loop>:
3e: 05 90 lpm r0, Z+
40: 0d 92 st X+, r0
00000042 <.do_copy_data_start>:
42: a0 36 cpi r26, 0x60 ; 96
44: b1 07 cpc r27, r17
46: d9 f7 brne .-10 ; 0x3e
00000048 <__do_clear_bss>:
48: 10 e0 ldi r17, 0x00 ; 0
4a: a0 e6 ldi r26, 0x60 ; 96
4c: b0 e0 ldi r27, 0x00 ; 0
4e: 01 c0 rjmp .+2 ; 0x52
00000050 <.do_clear_bss_loop>:
50: 1d 92 st X+, r1
00000052 <.do_clear_bss_start>:
52: a4 36 cpi r26, 0x64 ; 100
54: b1 07 cpc r27, r17
56: e1 f7 brne .-8 ; 0x50
58: 01 c0 rjmp .+2 ; 0x5c
0000005a <__bad_interrupt>:
5a: d2 cf rjmp .-92 ; 0x0
0000005c <main>:
#include "main.h"
#include "control.h"
int main(void)
{
5c: cf e5 ldi r28, 0x5F ; 95
5e: d4 e0 ldi r29, 0x04 ; 4
60: de bf out 0x3e, r29 ; 62
62: cd bf out 0x3d, r28 ; 61
//上電默認DDRx=0x00,PORTx=0x00 輸入,無上拉電阻
//不用的管腳使能內(nèi)部上拉電阻。
PORTB=0xFF;
64: 8f ef ldi r24, 0xFF ; 255
66: 88 bb out 0x18, r24 ; 24
PORTC=0xFF;
68: 85 bb out 0x15, r24 ; 21
PORTD=0xFF;
6a: 82 bb out 0x12, r24 ; 18
//設(shè)定SPI接口
PORTB=(1<<AD9833_CE)|(1<<AD9833_SDATA)|(1<<AD9833_SCLK);
6c: 8c e2 ldi r24, 0x2C ; 44
6e: 88 bb out 0x18, r24 ; 24
DDRB =(1<<AD9833_CE)|(1<<AD9833_SDATA)|(1<<AD9833_SCLK);
70: 87 bb out 0x17, r24 ; 23
init_ad9833();
72: 82 d0 rcall .+260 ; 0x178
while(1)
{
ctr8421();
74: ec d0 rcall .+472 ; 0x24e
switch (ctr_v)
76: 80 91 62 00 lds r24, 0x0062
7a: 99 27 eor r25, r25
7c: 87 30 cpi r24, 0x07 ; 7
7e: 91 05 cpc r25, r1
80: 89 f0 breq .+34 ; 0xa4
82: 88 30 cpi r24, 0x08 ; 8
84: 91 05 cpc r25, r1
86: 1c f4 brge .+6 ; 0x8e
88: 06 97 sbiw r24, 0x06 ; 6
8a: 39 f0 breq .+14 ; 0x9a
8c: 1a c0 rjmp .+52 ; 0xc2
8e: 88 30 cpi r24, 0x08 ; 8
90: 91 05 cpc r25, r1
92: 69 f0 breq .+26 ; 0xae
94: 09 97 sbiw r24, 0x09 ; 9
96: 81 f0 breq .+32 ; 0xb8
98: 14 c0 rjmp .+40 ; 0xc2
{
case 6 :output(6);break;
9a: 66 e0 ldi r22, 0x06 ; 6
9c: 70 e0 ldi r23, 0x00 ; 0
9e: 80 e0 ldi r24, 0x00 ; 0
a0: 90 e0 ldi r25, 0x00 ; 0
a2: 13 c0 rjmp .+38 ; 0xca
case 7 :output(7);break;
a4: 67 e0 ldi r22, 0x07 ; 7
a6: 70 e0 ldi r23, 0x00 ; 0
a8: 80 e0 ldi r24, 0x00 ; 0
aa: 90 e0 ldi r25, 0x00 ; 0
ac: 0e c0 rjmp .+28 ; 0xca
case 8 :output(10);break;
ae: 6a e0 ldi r22, 0x0A ; 10
b0: 70 e0 ldi r23, 0x00 ; 0
b2: 80 e0 ldi r24, 0x00 ; 0
b4: 90 e0 ldi r25, 0x00 ; 0
b6: 09 c0 rjmp .+18 ; 0xca
case 9 :output(50);break;
b8: 62 e3 ldi r22, 0x32 ; 50
ba: 70 e0 ldi r23, 0x00 ; 0
bc: 80 e0 ldi r24, 0x00 ; 0
be: 90 e0 ldi r25, 0x00 ; 0
c0: 04 c0 rjmp .+8 ; 0xca
default :output(0);break;
c2: 60 e0 ldi r22, 0x00 ; 0
c4: 70 e0 ldi r23, 0x00 ; 0
c6: 80 e0 ldi r24, 0x00 ; 0
c8: 90 e0 ldi r25, 0x00 ; 0
ca: 72 d0 rcall .+228 ; 0x1b0
cc: d3 cf rjmp .-90 ; 0x74
000000ce <delay_nus>:
*/
static __inline__ void
_delay_loop_1(uint8_t __count)
{
__asm__ volatile (
ce: 9c 01 movw r18, r24
d0: 21 50 subi r18, 0x01 ; 1
d2: 30 40 sbci r19, 0x00 ; 0
d4: 8f ef ldi r24, 0xFF ; 255
d6: 2f 3f cpi r18, 0xFF ; 255
d8: 38 07 cpc r19, r24
da: 69 f0 breq .+26 ; 0xf6
dc: 42 e0 ldi r20, 0x02 ; 2
de: 50 e0 ldi r21, 0x00 ; 0
e0: 60 e0 ldi r22, 0x00 ; 0
e2: 70 e0 ldi r23, 0x00 ; 0
e4: 84 2f mov r24, r20
e6: 8a 95 dec r24
e8: f1 f7 brne .-4 ; 0xe6
ea: 21 50 subi r18, 0x01 ; 1
ec: 30 40 sbci r19, 0x00 ; 0
ee: 8f ef ldi r24, 0xFF ; 255
f0: 2f 3f cpi r18, 0xFF ; 255
f2: 38 07 cpc r19, r24
f4: b9 f7 brne .-18 ; 0xe4
f6: 08 95 ret
000000f8 <delay_nms>:
輸入?yún)?shù): t :延時時間 ms
-----------------------------------------------------------------------*/
void delay_nms(unsigned int t)
{
f8: cf 93 push r28
fa: df 93 push r29
*/
static __inline__ void
_delay_loop_2(uint16_t __count)
{
__asm__ volatile (
fc: 9c 01 movw r18, r24
fe: 21 50 subi r18, 0x01 ; 1
100: 30 40 sbci r19, 0x00 ; 0
102: 8f ef ldi r24, 0xFF ; 255
104: 2f 3f cpi r18, 0xFF ; 255
106: 38 07 cpc r19, r24
108: 69 f0 breq .+26 ; 0x124
10a: a0 ed ldi r26, 0xD0 ; 208
10c: b7 e0 ldi r27, 0x07 ; 7
10e: c0 e0 ldi r28, 0x00 ; 0
110: d0 e0 ldi r29, 0x00 ; 0
112: cd 01 movw r24, r26
114: 01 97 sbiw r24, 0x01 ; 1
116: f1 f7 brne .-4 ; 0x114
118: 21 50 subi r18, 0x01 ; 1
11a: 30 40 sbci r19, 0x00 ; 0
11c: 8f ef ldi r24, 0xFF ; 255
11e: 2f 3f cpi r18, 0xFF ; 255
120: 38 07 cpc r19, r24
122: b9 f7 brne .-18 ; 0x112
124: df 91 pop r29
126: cf 91 pop r28
128: 08 95 ret
0000012a <Write_word>:
while (t--)
_delay_ms(1);
}
//-----------------------------------------------------------------------
//Write_word : 寫16位數(shù)據(jù)到SPI接口,軟件SPI方式
//
//輸入?yún)?shù): data: 數(shù)據(jù)(16位)
//-----------------------------------------------------------------------
void Write_word(unsigned int data)
{
12a: 1f 93 push r17
12c: cf 93 push r28
12e: df 93 push r29
130: ec 01 movw r28, r24
unsigned char i;
SCL_H;
132: c5 9a sbi 0x18, 5 ; 24
SDA_H;
134: c3 9a sbi 0x18, 3 ; 24
FSYNC_H;
136: c2 9a sbi 0x18, 2 ; 24
delay_nus(200);
138: 88 ec ldi r24, 0xC8 ; 200
13a: 90 e0 ldi r25, 0x00 ; 0
13c: c8 df rcall .-112 ; 0xce
FSYNC_L;
13e: c2 98 cbi 0x18, 2 ; 24
140: 1f e0 ldi r17, 0x0F ; 15
for(i=0;i<16;i++)
{
if(data&0x8000) SDA_H;
142: d7 ff sbrs r29, 7
144: 02 c0 rjmp .+4 ; 0x14a
146: c3 9a sbi 0x18, 3 ; 24
148: 01 c0 rjmp .+2 ; 0x14c
else SDA_L;
14a: c3 98 cbi 0x18, 3 ; 24
SCL_L;
14c: c5 98 cbi 0x18, 5 ; 24
delay_nus(5);
14e: 85 e0 ldi r24, 0x05 ; 5
150: 90 e0 ldi r25, 0x00 ; 0
152: bd df rcall .-134 ; 0xce
SCL_H;
154: c5 9a sbi 0x18, 5 ; 24
data=data<<1;
156: cc 0f add r28, r28
158: dd 1f adc r29, r29
15a: 11 50 subi r17, 0x01 ; 1
15c: 17 ff sbrs r17, 7
15e: f1 cf rjmp .-30 ; 0x142
}
delay_nus(2);
160: 82 e0 ldi r24, 0x02 ; 2
162: 90 e0 ldi r25, 0x00 ; 0
164: b4 df rcall .-152 ; 0xce
FSYNC_H;
166: c2 9a sbi 0x18, 2 ; 24
SCL_L;
168: c5 98 cbi 0x18, 5 ; 24
delay_nus(200);
16a: 88 ec ldi r24, 0xC8 ; 200
16c: 90 e0 ldi r25, 0x00 ; 0
16e: af df rcall .-162 ; 0xce
170: df 91 pop r29
172: cf 91 pop r28
174: 1f 91 pop r17
176: 08 95 ret
00000178 <init_ad9833>:
}
void init_ad9833(void)
{
Write_word(0x2100); //28位連續(xù),選擇頻率0,相位0,RESET=1
178: 80 e0 ldi r24, 0x00 ; 0
17a: 91 e2 ldi r25, 0x21 ; 33
17c: d6 df rcall .-84 ; 0x12a
Write_word(0x4000); //寫頻率0寄存器的低字節(jié)LSB
17e: 80 e0 ldi r24, 0x00 ; 0
180: 90 e4 ldi r25, 0x40 ; 64
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -