?? main.lss
字號(hào):
182: d3 df rcall .-90 ; 0x12a
Write_word(0x4000); //寫(xiě)頻率0寄存器的高字節(jié)MSB
184: 80 e0 ldi r24, 0x00 ; 0
186: 90 e4 ldi r25, 0x40 ; 64
188: d0 df rcall .-96 ; 0x12a
Write_word(0x2900); //28位連續(xù),選擇頻率0,相位0,RESET=1
18a: 80 e0 ldi r24, 0x00 ; 0
18c: 99 e2 ldi r25, 0x29 ; 41
18e: cd df rcall .-102 ; 0x12a
Write_word(0x8000); //寫(xiě)頻率0寄存器的低字節(jié)LSB
190: 80 e0 ldi r24, 0x00 ; 0
192: 90 e8 ldi r25, 0x80 ; 128
194: ca df rcall .-108 ; 0x12a
Write_word(0x8000); //寫(xiě)頻率0寄存器的高字節(jié)MSB
196: 80 e0 ldi r24, 0x00 ; 0
198: 90 e8 ldi r25, 0x80 ; 128
19a: c7 df rcall .-114 ; 0x12a
Write_word(0xC000); //寫(xiě)頻率0寄存器的低字節(jié)LSB
19c: 80 e0 ldi r24, 0x00 ; 0
19e: 90 ec ldi r25, 0xC0 ; 192
1a0: c4 df rcall .-120 ; 0x12a
Write_word(0xF000); //寫(xiě)頻率0寄存器的高字節(jié)MSB
1a2: 80 e0 ldi r24, 0x00 ; 0
1a4: 90 ef ldi r25, 0xF0 ; 240
1a6: c1 df rcall .-126 ; 0x12a
Write_word(0x2000); //28位連續(xù),選擇頻率0,相位0,RESET=0
1a8: 80 e0 ldi r24, 0x00 ; 0
1aa: 90 e2 ldi r25, 0x20 ; 32
1ac: be df rcall .-132 ; 0x12a
1ae: 08 95 ret
000001b0 <output>:
}
//------------------------------------------------------------------
//output :AD9833輸出指定頻率的正弦波
//
//輸入?yún)?shù):freq_value 類(lèi)型:unsigned long
//輸出參數(shù):無(wú)
//------------------------------------------------------------------
void output(unsigned long freq_value)
{
1b0: ef 92 push r14
1b2: ff 92 push r15
1b4: 0f 93 push r16
1b6: 1f 93 push r17
1b8: 9b 01 movw r18, r22
1ba: ac 01 movw r20, r24
unsigned long dds;
unsigned int dds_l,dds_h;
dds= freq_value *268.435456; //268435456/ FMCLK
1bc: 97 fd sbrc r25, 7
1be: 02 c0 rjmp .+4 ; 0x1c4
1c0: 1c d1 rcall .+568 ; 0x3fa
1c2: 14 c0 rjmp .+40 ; 0x1ec
1c4: dc 01 movw r26, r24
1c6: cb 01 movw r24, r22
1c8: 81 70 andi r24, 0x01 ; 1
1ca: 90 70 andi r25, 0x00 ; 0
1cc: a0 70 andi r26, 0x00 ; 0
1ce: b0 70 andi r27, 0x00 ; 0
1d0: 56 95 lsr r21
1d2: 47 95 ror r20
1d4: 37 95 ror r19
1d6: 27 95 ror r18
1d8: 82 2b or r24, r18
1da: 93 2b or r25, r19
1dc: a4 2b or r26, r20
1de: b5 2b or r27, r21
1e0: bc 01 movw r22, r24
1e2: cd 01 movw r24, r26
1e4: 0a d1 rcall .+532 ; 0x3fa
1e6: 9b 01 movw r18, r22
1e8: ac 01 movw r20, r24
1ea: a8 d0 rcall .+336 ; 0x33c
1ec: 2d eb ldi r18, 0xBD ; 189
1ee: 37 e3 ldi r19, 0x37 ; 55
1f0: 46 e8 ldi r20, 0x86 ; 134
1f2: 53 e4 ldi r21, 0x43 ; 67
1f4: 4c d1 rcall .+664 ; 0x48e
1f6: dc 01 movw r26, r24
1f8: cb 01 movw r24, r22
1fa: bc 01 movw r22, r24
1fc: cd 01 movw r24, r26
1fe: e0 d0 rcall .+448 ; 0x3c0
200: dc 01 movw r26, r24
202: cb 01 movw r24, r22
dds=dds<<2;
204: 32 e0 ldi r19, 0x02 ; 2
206: 88 0f add r24, r24
208: 99 1f adc r25, r25
20a: aa 1f adc r26, r26
20c: bb 1f adc r27, r27
20e: 3a 95 dec r19
210: d1 f7 brne .-12 ; 0x206
dds_l=dds; //低字節(jié)
212: 8c 01 movw r16, r24
dds_h=dds>>16; //高字節(jié)
214: cd 01 movw r24, r26
216: aa 27 eor r26, r26
218: bb 27 eor r27, r27
21a: 7c 01 movw r14, r24
dds_l=dds_l>>2;
dds_l=dds_l & 0x7FFF;
21c: 16 95 lsr r17
21e: 07 95 ror r16
220: 16 95 lsr r17
222: 07 95 ror r16
dds_l=dds_l | 0x4000;
224: 10 64 ori r17, 0x40 ; 64
dds_h=dds_h & 0x7FFF;
226: 8f ef ldi r24, 0xFF ; 255
228: 9f e7 ldi r25, 0x7F ; 127
22a: e8 22 and r14, r24
22c: f9 22 and r15, r25
dds_h=dds_h | 0x4000;
22e: 80 e0 ldi r24, 0x00 ; 0
230: 90 e4 ldi r25, 0x40 ; 64
232: e8 2a or r14, r24
234: f9 2a or r15, r25
Write_word(0x2000); //28位連續(xù),選擇頻率0,相位0,RESET=0
236: 80 e0 ldi r24, 0x00 ; 0
238: 90 e2 ldi r25, 0x20 ; 32
23a: 77 df rcall .-274 ; 0x12a
Write_word(dds_l);
23c: c8 01 movw r24, r16
23e: 75 df rcall .-278 ; 0x12a
Write_word(dds_h);
240: c7 01 movw r24, r14
242: 73 df rcall .-282 ; 0x12a
244: 1f 91 pop r17
246: 0f 91 pop r16
248: ff 90 pop r15
24a: ef 90 pop r14
24c: 08 95 ret
0000024e <ctr8421>:
//---------------------------------------------
unsigned char ctr8421(void)
{
//ctr=0
if(((PIND&(1<<ctr8)))&&((PIND&(1<<ctr4)))&&((PIND&(1<<ctr2)))&&((PIND&(1<<ctr1))))
24e: 80 9b sbis 0x10, 0 ; 16
250: 09 c0 rjmp .+18 ; 0x264
252: 81 9b sbis 0x10, 1 ; 16
254: 07 c0 rjmp .+14 ; 0x264
256: 82 9b sbis 0x10, 2 ; 16
258: 05 c0 rjmp .+10 ; 0x264
25a: 83 9b sbis 0x10, 3 ; 16
25c: 03 c0 rjmp .+6 ; 0x264
ctr_v=0;
25e: 10 92 62 00 sts 0x0062, r1
262: 5b c0 rjmp .+182 ; 0x31a
//ctr=1
else if(((PIND&(1<<ctr8)))&&((PIND&(1<<ctr4)))&&((PIND&(1<<ctr2)))&&(!(PIND&(1<<ctr1))))
264: 80 9b sbis 0x10, 0 ; 16
266: 08 c0 rjmp .+16 ; 0x278
268: 81 9b sbis 0x10, 1 ; 16
26a: 06 c0 rjmp .+12 ; 0x278
26c: 82 9b sbis 0x10, 2 ; 16
26e: 04 c0 rjmp .+8 ; 0x278
270: 83 99 sbic 0x10, 3 ; 16
272: 02 c0 rjmp .+4 ; 0x278
ctr_v=1;
274: 81 e0 ldi r24, 0x01 ; 1
276: 4f c0 rjmp .+158 ; 0x316
//ctr=2
else if(((PIND&(1<<ctr8)))&&((PIND&(1<<ctr4)))&&(!(PIND&(1<<ctr2)))&&((PIND&(1<<ctr1))))
278: 80 9b sbis 0x10, 0 ; 16
27a: 08 c0 rjmp .+16 ; 0x28c
27c: 81 9b sbis 0x10, 1 ; 16
27e: 06 c0 rjmp .+12 ; 0x28c
280: 82 99 sbic 0x10, 2 ; 16
282: 04 c0 rjmp .+8 ; 0x28c
284: 83 9b sbis 0x10, 3 ; 16
286: 02 c0 rjmp .+4 ; 0x28c
ctr_v=2;
288: 82 e0 ldi r24, 0x02 ; 2
28a: 45 c0 rjmp .+138 ; 0x316
//ctr=3
else if(((PIND&(1<<ctr8)))&&((PIND&(1<<ctr4)))&&(!(PIND&(1<<ctr2)))&&(!(PIND&(1<<ctr1))))
28c: 80 9b sbis 0x10, 0 ; 16
28e: 08 c0 rjmp .+16 ; 0x2a0
290: 81 9b sbis 0x10, 1 ; 16
292: 06 c0 rjmp .+12 ; 0x2a0
294: 82 99 sbic 0x10, 2 ; 16
296: 04 c0 rjmp .+8 ; 0x2a0
298: 83 99 sbic 0x10, 3 ; 16
29a: 02 c0 rjmp .+4 ; 0x2a0
ctr_v=3;
29c: 83 e0 ldi r24, 0x03 ; 3
29e: 3b c0 rjmp .+118 ; 0x316
//ctr=4
else if(((PIND&(1<<ctr8)))&&(!(PIND&(1<<ctr4)))&&((PIND&(1<<ctr2)))&&((PIND&(1<<ctr1))))
2a0: 80 9b sbis 0x10, 0 ; 16
2a2: 08 c0 rjmp .+16 ; 0x2b4
2a4: 81 99 sbic 0x10, 1 ; 16
2a6: 06 c0 rjmp .+12 ; 0x2b4
2a8: 82 9b sbis 0x10, 2 ; 16
2aa: 04 c0 rjmp .+8 ; 0x2b4
2ac: 83 9b sbis 0x10, 3 ; 16
2ae: 02 c0 rjmp .+4 ; 0x2b4
ctr_v=4;
2b0: 84 e0 ldi r24, 0x04 ; 4
2b2: 31 c0 rjmp .+98 ; 0x316
//ctr=5
else if(((PIND&(1<<ctr8)))&&(!(PIND&(1<<ctr4)))&&((PIND&(1<<ctr2)))&&(!(PIND&(1<<ctr1))))
2b4: 80 9b sbis 0x10, 0 ; 16
2b6: 08 c0 rjmp .+16 ; 0x2c8
2b8: 81 99 sbic 0x10, 1 ; 16
2ba: 06 c0 rjmp .+12 ; 0x2c8
2bc: 82 9b sbis 0x10, 2 ; 16
2be: 04 c0 rjmp .+8 ; 0x2c8
2c0: 83 99 sbic 0x10, 3 ; 16
2c2: 02 c0 rjmp .+4 ; 0x2c8
ctr_v=5;
2c4: 85 e0 ldi r24, 0x05 ; 5
2c6: 27 c0 rjmp .+78 ; 0x316
//ctr=6
else if(((PIND&(1<<ctr8)))&&(!(PIND&(1<<ctr4)))&&(!(PIND&(1<<ctr2)))&&((PIND&(1<<ctr1))))
2c8: 80 9b sbis 0x10, 0 ; 16
2ca: 08 c0 rjmp .+16 ; 0x2dc
2cc: 81 99 sbic 0x10, 1 ; 16
2ce: 06 c0 rjmp .+12 ; 0x2dc
2d0: 82 99 sbic 0x10, 2 ; 16
2d2: 04 c0 rjmp .+8 ; 0x2dc
2d4: 83 9b sbis 0x10, 3 ; 16
2d6: 02 c0 rjmp .+4 ; 0x2dc
ctr_v=6;
2d8: 86 e0 ldi r24, 0x06 ; 6
2da: 1d c0 rjmp .+58 ; 0x316
//ctr=7
else if(((PIND&(1<<ctr8)))&&(!(PIND&(1<<ctr4)))&&(!(PIND&(1<<ctr2)))&&(!(PIND&(1<<ctr1))))
2dc: 80 9b sbis 0x10, 0 ; 16
2de: 08 c0 rjmp .+16 ; 0x2f0
2e0: 81 99 sbic 0x10, 1 ; 16
2e2: 06 c0 rjmp .+12 ; 0x2f0
2e4: 82 99 sbic 0x10, 2 ; 16
2e6: 04 c0 rjmp .+8 ; 0x2f0
2e8: 83 99 sbic 0x10, 3 ; 16
2ea: 02 c0 rjmp .+4 ; 0x2f0
ctr_v=7;
2ec: 87 e0 ldi r24, 0x07 ; 7
2ee: 13 c0 rjmp .+38 ; 0x316
//ctr=8
else if((!(PIND&(1<<ctr8)))&&((PIND&(1<<ctr4)))&&((PIND&(1<<ctr2)))&&((PIND&(1<<ctr1))))
2f0: 80 99 sbic 0x10, 0 ; 16
2f2: 08 c0 rjmp .+16 ; 0x304
2f4: 81 9b sbis 0x10, 1 ; 16
2f6: 06 c0 rjmp .+12 ; 0x304
2f8: 82 9b sbis 0x10, 2 ; 16
2fa: 04 c0 rjmp .+8 ; 0x304
2fc: 83 9b sbis 0x10, 3 ; 16
2fe: 02 c0 rjmp .+4 ; 0x304
ctr_v=8;
300: 88 e0 ldi r24, 0x08 ; 8
302: 09 c0 rjmp .+18 ; 0x316
//ctr=9
else if((!(PIND&(1<<ctr8)))&&((PIND&(1<<ctr4)))&&((PIND&(1<<ctr2)))&&(!(PIND&(1<<ctr1))))
304: 80 99 sbic 0x10, 0 ; 16
306: 09 c0 rjmp .+18 ; 0x31a
308: 81 9b sbis 0x10, 1 ; 16
30a: 07 c0 rjmp .+14 ; 0x31a
30c: 82 9b sbis 0x10, 2 ; 16
30e: 05 c0 rjmp .+10 ; 0x31a
310: 83 99 sbic 0x10, 3 ; 16
312: 03 c0 rjmp .+6 ; 0x31a
ctr_v=9;
314: 89 e0 ldi r24, 0x09 ; 9
316: 80 93 62 00 sts 0x0062, r24
return ctr_v;
31a: 80 91 62 00 lds r24, 0x0062
}
31e: 99 27 eor r25, r25
320: 08 95 ret
00000322 <ctrpn>:
//---------------------------------------------
//ctrpn:對(duì)正負(fù)脈沖按鈕開(kāi)關(guān)的判斷
//
//輸入:無(wú)
//輸出:ctr_p unsigned char
//---------------------------------------------
unsigned char ctrpn(void)
{
if(!(PIND&(1<<pn)))
322: 87 99 sbic 0x10, 7 ; 16
324: 03 c0 rjmp .+6 ; 0x32c
ctr_pn=0;
326: 10 92 63 00 sts 0x0063, r1
32a: 03 c0 rjmp .+6 ; 0x332
else
ctr_pn=1;
32c: 81 e0 ldi r24, 0x01 ; 1
32e: 80 93 63 00 sts 0x0063, r24
return ctr_pn;
332: 80 91 63 00 lds r24, 0x0063
}
336: 99 27 eor r25, r25
338: 08 95 ret
0000033a <__subsf3>:
33a: 50 58 subi r21, 0x80 ; 128
0000033c <__addsf3>:
33c: 19 2e mov r1, r25
33e: 84 d0 rcall .+264 ; 0x448
340: 01 d0 rcall .+2 ; 0x344
342: 6a c0 rjmp .+212 ; 0x418
00000344 <__addsf3x>:
344: ba 17 cp r27, r26
346: 62 07 cpc r22, r18
348: 73 07 cpc r23, r19
34a: 84 07 cpc r24, r20
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -