📄 tc1_2.lss
字号:
//时清除OC0(反向PWM)
OCR2=0X80;
182: 80 e8 ldi r24, 0x80 ; 128
184: 80 93 43 00 sts 0x0043, r24
188: df 91 pop r29
18a: cf 91 pop r28
18c: 08 95 ret
0000018e <init_timer0>:
}
//T/C0初始化子程序
void init_timer0(void)
{TCCR0=0X04; //T/C0普通模式计数,计数器时钟为系统时钟的256分频
18e: cf 93 push r28
190: df 93 push r29
192: cd b7 in r28, 0x3d ; 61
194: de b7 in r29, 0x3e ; 62
196: 84 e0 ldi r24, 0x04 ; 4
198: 80 93 53 00 sts 0x0053, r24
TCNT0=0X06; //T/C0置初值6
19c: 86 e0 ldi r24, 0x06 ; 6
19e: 80 93 52 00 sts 0x0052, r24
TIMSK=0X01; //T/C0允许中断
1a2: 81 e0 ldi r24, 0x01 ; 1
1a4: 80 93 59 00 sts 0x0059, r24
1a8: df 91 pop r29
1aa: cf 91 pop r28
1ac: 08 95 ret
000001ae <init_timer1>:
}
//T/C1初始化子程序
void init_timer1(void)
{
1ae: cf 93 push r28
1b0: df 93 push r29
1b2: cd b7 in r28, 0x3d ; 61
1b4: de b7 in r29, 0x3e ; 62
DDRB|=(1<<PB1); //PB1(T1)引脚定义为输入
1b6: 80 91 37 00 lds r24, 0x0037
1ba: 82 60 ori r24, 0x02 ; 2
1bc: 80 93 37 00 sts 0x0037, r24
TCCR1B=0X07; //T/C1普通模式计数,外部T1引脚,上升沿驱动
1c0: 87 e0 ldi r24, 0x07 ; 7
1c2: 80 93 4e 00 sts 0x004E, r24
1c6: df 91 pop r29
1c8: cf 91 pop r28
1ca: 08 95 ret
000001cc <__vector_9>:
}
//T/C0溢出中断服务程序
SIGNAL(SIG_OVERFLOW0)
{ TCNT0=0X06; //重新装入定时器0的初始值
1cc: 1f 92 push r1
1ce: 0f 92 push r0
1d0: 0f b6 in r0, 0x3f ; 63
1d2: 0f 92 push r0
1d4: 11 24 eor r1, r1
1d6: 2f 93 push r18
1d8: 3f 93 push r19
1da: 8f 93 push r24
1dc: 9f 93 push r25
1de: cf 93 push r28
1e0: df 93 push r29
1e2: cd b7 in r28, 0x3d ; 61
1e4: de b7 in r29, 0x3e ; 62
1e6: 86 e0 ldi r24, 0x06 ; 6
1e8: 80 93 52 00 sts 0x0052, r24
n++;
1ec: 80 91 68 00 lds r24, 0x0068
1f0: 8f 5f subi r24, 0xFF ; 255
1f2: 80 93 68 00 sts 0x0068, r24
m++;
1f6: 80 91 69 00 lds r24, 0x0069
1fa: 8f 5f subi r24, 0xFF ; 255
1fc: 80 93 69 00 sts 0x0069, r24
if(n==125)
200: 80 91 68 00 lds r24, 0x0068
204: 8d 37 cpi r24, 0x7D ; 125
206: c9 f4 brne .+50 ; 0x23a
{temp2=TCNT1-temp1;
208: 20 91 4c 00 lds r18, 0x004C
20c: 30 91 4d 00 lds r19, 0x004D
210: 80 91 66 00 lds r24, 0x0066
214: 90 91 67 00 lds r25, 0x0067
218: 28 1b sub r18, r24
21a: 39 0b sbc r19, r25
21c: c9 01 movw r24, r18
21e: 90 93 6d 00 sts 0x006D, r25
222: 80 93 6c 00 sts 0x006C, r24
temp1=temp2;
226: 80 91 6c 00 lds r24, 0x006C
22a: 90 91 6d 00 lds r25, 0x006D
22e: 90 93 67 00 sts 0x0067, r25
232: 80 93 66 00 sts 0x0066, r24
n=0;
236: 10 92 68 00 sts 0x0068, r1
23a: df 91 pop r29
23c: cf 91 pop r28
23e: 9f 91 pop r25
240: 8f 91 pop r24
242: 3f 91 pop r19
244: 2f 91 pop r18
246: 0f 90 pop r0
248: 0f be out 0x3f, r0 ; 63
24a: 0f 90 pop r0
24c: 1f 90 pop r1
24e: 18 95 reti
00000250 <main>:
}
}
int main(void)
{
250: cf e5 ldi r28, 0x5F ; 95
252: d4 e0 ldi r29, 0x04 ; 4
254: de bf out 0x3e, r29 ; 62
256: cd bf out 0x3d, r28 ; 61
USART_Init();
258: 0e 94 47 00 call 0x8e
init_timer0();
25c: 0e 94 c7 00 call 0x18e
init_timer1();
260: 0e 94 d7 00 call 0x1ae
t2pwm2();
264: 0e 94 b5 00 call 0x16a
sei();
268: 78 94 sei
while(1)
{
if(m>0 && m%125==0)
26a: 80 91 69 00 lds r24, 0x0069
26e: 88 23 and r24, r24
270: 99 f0 breq .+38 ; 0x298
272: 80 91 69 00 lds r24, 0x0069
276: 9d e7 ldi r25, 0x7D ; 125
278: 69 2f mov r22, r25
27a: 0e 94 7b 01 call 0x2f6
27e: 89 2f mov r24, r25
280: 88 23 and r24, r24
282: 51 f4 brne .+20 ; 0x298
{/*b16td5(temp2);
send_num[0]=i_g;
send_num[1]=i_sh;
send_num[2]=i_b;
send_num[3]=i_q;
send_num[4]=i_w;*/
utoa(temp2,send_num,10);
284: 4a e0 ldi r20, 0x0A ; 10
286: 50 e0 ldi r21, 0x00 ; 0
288: 60 e6 ldi r22, 0x60 ; 96
28a: 70 e0 ldi r23, 0x00 ; 0
28c: 80 91 6c 00 lds r24, 0x006C
290: 90 91 6d 00 lds r25, 0x006D
294: 0e 94 51 01 call 0x2a2
}
USART_puts(send_num);
298: 80 e6 ldi r24, 0x60 ; 96
29a: 90 e0 ldi r25, 0x00 ; 0
29c: 0e 94 88 00 call 0x110
2a0: e4 cf rjmp .-56 ; 0x26a
000002a2 <utoa>:
2a2: e6 2f mov r30, r22
2a4: f7 2f mov r31, r23
2a6: 2e 2f mov r18, r30
2a8: 3f 2f mov r19, r31
2aa: 42 30 cpi r20, 0x02 ; 2
2ac: 7c f0 brlt .+30 ; 0x2cc
2ae: 45 32 cpi r20, 0x25 ; 37
2b0: 6c f4 brge .+26 ; 0x2cc
000002b2 <divide_loop>:
2b2: 64 2f mov r22, r20
2b4: 77 27 eor r23, r23
2b6: 0e 94 87 01 call 0x30e
2ba: 80 5d subi r24, 0xD0 ; 208
2bc: 8a 33 cpi r24, 0x3A ; 58
2be: 0c f0 brlt .+2 ; 0x2c2
2c0: 89 5d subi r24, 0xD9 ; 217
000002c2 <L_10>:
2c2: 81 93 st Z+, r24
2c4: 86 2f mov r24, r22
2c6: 97 2f mov r25, r23
2c8: 00 97 sbiw r24, 0x00 ; 0
2ca: 99 f7 brne .-26 ; 0x2b2
000002cc <terminate>:
2cc: 93 2f mov r25, r19
2ce: 82 2f mov r24, r18
2d0: 10 82 st Z, r1
2d2: 0c 94 6b 01 jmp 0x2d6
000002d6 <strrev>:
2d6: dc 01 movw r26, r24
2d8: fc 01 movw r30, r24
000002da <.strrev_eos>:
2da: 01 90 ld r0, Z+
2dc: 00 20 and r0, r0
2de: e9 f7 brne .-6 ; 0x2da
2e0: 32 97 sbiw r30, 0x02 ; 2
000002e2 <.strrev_loop>:
2e2: ae 17 cp r26, r30
2e4: bf 07 cpc r27, r31
2e6: 30 f4 brcc .+12 ; 0x2f4
2e8: 7c 91 ld r23, X
2ea: 60 81 ld r22, Z
2ec: 70 83 st Z, r23
2ee: 31 97 sbiw r30, 0x01 ; 1
2f0: 6d 93 st X+, r22
2f2: f7 cf rjmp .-18 ; 0x2e2
000002f4 <.strrev_done>:
2f4: 08 95 ret
000002f6 <__udivmodqi4>:
2f6: 99 1b sub r25, r25
2f8: 79 e0 ldi r23, 0x09 ; 9
2fa: 04 c0 rjmp .+8 ; 0x304
000002fc <__udivmodqi4_loop>:
2fc: 99 1f adc r25, r25
2fe: 96 17 cp r25, r22
300: 08 f0 brcs .+2 ; 0x304
302: 96 1b sub r25, r22
00000304 <__udivmodqi4_ep>:
304: 88 1f adc r24, r24
306: 7a 95 dec r23
308: c9 f7 brne .-14 ; 0x2fc
30a: 80 95 com r24
30c: 08 95 ret
0000030e <__udivmodhi4>:
30e: aa 1b sub r26, r26
310: bb 1b sub r27, r27
312: 51 e1 ldi r21, 0x11 ; 17
314: 07 c0 rjmp .+14 ; 0x324
00000316 <__udivmodhi4_loop>:
316: aa 1f adc r26, r26
318: bb 1f adc r27, r27
31a: a6 17 cp r26, r22
31c: b7 07 cpc r27, r23
31e: 10 f0 brcs .+4 ; 0x324
320: a6 1b sub r26, r22
322: b7 0b sbc r27, r23
00000324 <__udivmodhi4_ep>:
324: 88 1f adc r24, r24
326: 99 1f adc r25, r25
328: 5a 95 dec r21
32a: a9 f7 brne .-22 ; 0x316
32c: 80 95 com r24
32e: 90 95 com r25
330: bc 01 movw r22, r24
332: cd 01 movw r24, r26
334: 08 95 ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -