📄 pwm32.lss
字号:
262: 89 23 and r24, r25
264: 80 93 2b 00 sts 0x002B, r24
PORTF=PwmStepBuffer23[TrueStepCount] & DDRF;
268: 80 91 88 02 lds r24, 0x0288
26c: 99 27 eor r25, r25
26e: fc 01 movw r30, r24
270: ed 5e subi r30, 0xED ; 237
272: fe 4f sbci r31, 0xFE ; 254
274: 90 81 ld r25, Z
276: 80 91 30 00 lds r24, 0x0030
27a: 89 23 and r24, r25
27c: 80 93 31 00 sts 0x0031, r24
TrueStepCount++;
280: 80 91 88 02 lds r24, 0x0288
284: 8f 5f subi r24, 0xFF ; 255
286: 80 93 88 02 sts 0x0288, r24
28a: b9 cf rjmp .-142 ; 0x1fe <main+0x168>
}
}
while(1)
{
if(PwmStepCounter>PwmPulse[TrueStepCount]) //最开始时应该设为0
28c: 80 91 88 02 lds r24, 0x0288
290: 99 27 eor r25, r25
292: fc 01 movw r30, r24
294: e3 57 subi r30, 0x73 ; 115
296: fd 4f sbci r31, 0xFD ; 253
298: 90 81 ld r25, Z
29a: 80 91 b0 02 lds r24, 0x02B0
29e: 98 17 cp r25, r24
2a0: a8 f7 brcc .-22 ; 0x28c <main+0x1f6>
{
PORTA=PwmStepBuffer0[TrueStepCount];
2a2: 80 91 88 02 lds r24, 0x0288
2a6: 99 27 eor r25, r25
2a8: fc 01 movw r30, r24
2aa: e8 5c subi r30, 0xC8 ; 200
2ac: fe 4f sbci r31, 0xFE ; 254
2ae: 80 81 ld r24, Z
2b0: 80 93 22 00 sts 0x0022, r24
PORTC=PwmStepBuffer7[TrueStepCount];
2b4: 80 91 88 02 lds r24, 0x0288
2b8: 99 27 eor r25, r25
2ba: fc 01 movw r30, r24
2bc: e5 59 subi r30, 0x95 ; 149
2be: fe 4f sbci r31, 0xFE ; 254
2c0: 80 81 ld r24, Z
2c2: 80 93 28 00 sts 0x0028, r24
PORTD=PwmStepBuffer15[TrueStepCount];
2c6: 80 91 88 02 lds r24, 0x0288
2ca: 99 27 eor r25, r25
2cc: fc 01 movw r30, r24
2ce: e9 59 subi r30, 0x99 ; 153
2d0: fd 4f sbci r31, 0xFD ; 253
2d2: 80 81 ld r24, Z
2d4: 80 93 2b 00 sts 0x002B, r24
PORTF=PwmStepBuffer23[TrueStepCount];
2d8: 80 91 88 02 lds r24, 0x0288
2dc: 99 27 eor r25, r25
2de: fc 01 movw r30, r24
2e0: ed 5e subi r30, 0xED ; 237
2e2: fe 4f sbci r31, 0xFE ; 254
2e4: 80 81 ld r24, Z
2e6: 80 93 31 00 sts 0x0031, r24
TrueStepCount++;
2ea: 80 91 88 02 lds r24, 0x0288
2ee: 8f 5f subi r24, 0xFF ; 255
2f0: 80 93 88 02 sts 0x0288, r24
2f4: cb cf rjmp .-106 ; 0x28c <main+0x1f6>
000002f6 <UARTClose>:
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void UARTClose(void)
{
2f6: cf 93 push r28
2f8: df 93 push r29
2fa: cd b7 in r28, 0x3d ; 61
2fc: de b7 in r29, 0x3e ; 62
UCSRB = 0x00; /*允许接收和发送*/
2fe: 10 92 c1 00 sts 0x00C1, r1
302: df 91 pop r29
304: cf 91 pop r28
306: 08 95 ret
00000308 <UARTInitial>:
}
/************************************************************
Function Name: T2Init
Function: Timer0 initial
Paramenter: None
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void UARTInitial(void)
{
308: cf 93 push r28
30a: df 93 push r29
30c: cd b7 in r28, 0x3d ; 61
30e: de b7 in r29, 0x3e ; 62
UCSRA = 0x02; /*倍速*/
310: 82 e0 ldi r24, 0x02 ; 2
312: 80 93 c0 00 sts 0x00C0, r24
UCSRB = 0x98; /*允许接收和发送*/
316: 88 e9 ldi r24, 0x98 ; 152
318: 80 93 c1 00 sts 0x00C1, r24
UCSRC = 0x06; /*8位数据,1位停止位*/
31c: 86 e0 ldi r24, 0x06 ; 6
31e: 80 93 c2 00 sts 0x00C2, r24
UBRR = 103; /*9600*/
322: 87 e6 ldi r24, 0x67 ; 103
324: 90 e0 ldi r25, 0x00 ; 0
326: 90 93 c5 00 sts 0x00C5, r25
32a: 80 93 c4 00 sts 0x00C4, r24
32e: df 91 pop r29
330: cf 91 pop r28
332: 08 95 ret
00000334 <__vector_13>:
}
/************************************************************
Function Name: SIGNAL(USART_RX_vect)
Function: 在中断中接收host传来的数据
Paramenter: None
Return value: None
Author: Chen yuan zhen Mar.04.2008
*************************************************************/
SIGNAL(USART0_RX_vect)
{
334: 1f 92 push r1
336: 0f 92 push r0
338: 0f b6 in r0, 0x3f ; 63
33a: 0f 92 push r0
33c: 11 24 eor r1, r1
33e: 2f 93 push r18
340: 3f 93 push r19
342: 4f 93 push r20
344: 5f 93 push r21
346: 6f 93 push r22
348: 7f 93 push r23
34a: 8f 93 push r24
34c: 9f 93 push r25
34e: af 93 push r26
350: bf 93 push r27
352: ef 93 push r30
354: ff 93 push r31
356: cf 93 push r28
358: df 93 push r29
35a: cd b7 in r28, 0x3d ; 61
35c: de b7 in r29, 0x3e ; 62
35e: 28 97 sbiw r28, 0x08 ; 8
360: de bf out 0x3e, r29 ; 62
362: cd bf out 0x3d, r28 ; 61
static unsigned char RxCounter=0;
unsigned char RxStatus , data ,checksum=0;
364: 1b 82 std Y+3, r1 ; 0x03
RxStatus = UCSRA;
366: 80 91 c0 00 lds r24, 0x00C0
36a: 89 83 std Y+1, r24 ; 0x01
data =UDR;
36c: 80 91 c6 00 lds r24, 0x00C6
370: 8a 83 std Y+2, r24 ; 0x02
if(IS_UART_REC_READY)
372: 80 91 8c 02 lds r24, 0x028C
376: 81 70 andi r24, 0x01 ; 1
378: 88 23 and r24, r24
37a: 09 f4 brne .+2 ; 0x37e <__vector_13+0x4a>
37c: cc c1 rjmp .+920 ; 0x716 <__stack+0x217>
{
if( ( RxStatus & ERROR_UART )==0) //如果没有帧错误和溢出错误
37e: 89 81 ldd r24, Y+1 ; 0x01
380: 99 27 eor r25, r25
382: 88 71 andi r24, 0x18 ; 24
384: 90 70 andi r25, 0x00 ; 0
386: 00 97 sbiw r24, 0x00 ; 0
388: 09 f0 breq .+2 ; 0x38c <__vector_13+0x58>
38a: be c1 rjmp .+892 ; 0x708 <__stack+0x209>
{
if(IS_DOWN_LOAD_ENABLE) //下载 ^^%^
38c: 80 91 8c 02 lds r24, 0x028C
390: 82 70 andi r24, 0x02 ; 2
392: 88 23 and r24, r24
394: 09 f4 brne .+2 ; 0x398 <__vector_13+0x64>
396: 4a c1 rjmp .+660 ; 0x62c <__stack+0x12d>
{ //可以从这里区分最后的信息
SET_DL_CONTINUE_FLAG;
398: 80 91 8c 02 lds r24, 0x028C
39c: 84 60 ori r24, 0x04 ; 4
39e: 80 93 8c 02 sts 0x028C, r24
switch(RxCounter)
3a2: 80 91 0a 01 lds r24, 0x010A
3a6: 28 2f mov r18, r24
3a8: 33 27 eor r19, r19
3aa: 3e 83 std Y+6, r19 ; 0x06
3ac: 2d 83 std Y+5, r18 ; 0x05
3ae: 4d 81 ldd r20, Y+5 ; 0x05
3b0: 5e 81 ldd r21, Y+6 ; 0x06
3b2: 44 30 cpi r20, 0x04 ; 4
3b4: 51 05 cpc r21, r1
3b6: 09 f4 brne .+2 ; 0x3ba <__vector_13+0x86>
3b8: e7 c0 rjmp .+462 ; 0x588 <__stack+0x89>
3ba: 8d 81 ldd r24, Y+5 ; 0x05
3bc: 9e 81 ldd r25, Y+6 ; 0x06
3be: 85 30 cpi r24, 0x05 ; 5
3c0: 91 05 cpc r25, r1
3c2: ec f4 brge .+58 ; 0x3fe <__vector_13+0xca>
3c4: 2d 81 ldd r18, Y+5 ; 0x05
3c6: 3e 81 ldd r19, Y+6 ; 0x06
3c8: 21 30 cpi r18, 0x01 ; 1
3ca: 31 05 cpc r19, r1
3cc: 09 f4 brne .+2 ; 0x3d0 <__vector_13+0x9c>
3ce: 49 c0 rjmp .+146 ; 0x462 <__vector_13+0x12e>
3d0: 4d 81 ldd r20, Y+5 ; 0x05
3d2: 5e 81 ldd r21, Y+6 ; 0x06
3d4: 42 30 cpi r20, 0x02 ; 2
3d6: 51 05 cpc r21, r1
3d8: 2c f4 brge .+10 ; 0x3e4 <__vector_13+0xb0>
3da: 8d 81 ldd r24, Y+5 ; 0x05
3dc: 9e 81 ldd r25, Y+6 ; 0x06
3de: 00 97 sbiw r24, 0x00 ; 0
3e0: 09 f1 breq .+66 ; 0x424 <__vector_13+0xf0>
3e2: 24 c1 rjmp .+584 ; 0x62c <__stack+0x12d>
3e4: 2d 81 ldd r18, Y+5 ; 0x05
3e6: 3e 81 ldd r19, Y+6 ; 0x06
3e8: 22 30 cpi r18, 0x02 ; 2
3ea: 31 05 cpc r19, r1
3ec: 09 f4 brne .+2 ; 0x3f0 <__vector_13+0xbc>
3ee: 50 c0 rjmp .+160 ; 0x490 <__vector_13+0x15c>
3f0: 4d 81 ldd r20, Y+5 ; 0x05
3f2: 5e 81 ldd r21, Y+6 ; 0x06
3f4: 43 30 cpi r20, 0x03 ; 3
3f6: 51 05 cpc r21, r1
3f8: 09 f4 brne .+2 ; 0x3fc <__vector_13+0xc8>
3fa: 71 c0 rjmp .+226 ; 0x4de <__vector_13+0x1aa>
3fc: 17 c1 rjmp .+558 ; 0x62c <__stack+0x12d>
3fe: 8d 81 ldd r24, Y+5 ; 0x05
400: 9e 81 ldd r25, Y+6 ; 0x06
402: 86 32 cpi r24, 0x26 ; 38
404: 91 05 cpc r25, r1
406: 3c f4 brge .+14 ; 0x416 <__vector_13+0xe2>
408: 2d 81 ldd r18, Y+5 ; 0x05
40a: 3e 81 ldd r19, Y+6 ; 0x06
40c: 26 30 cpi r18, 0x06 ; 6
40e: 31 05 cpc r19, r1
410: 0c f0 brlt .+2 ; 0x414 <__vector_13+0xe0>
412: cc c0 rjmp .+408 ; 0x5ac <__stack+0xad>
414: c2 c0 rjmp .+388 ; 0x59a <__stack+0x9b>
416: 4d 81 ldd r20, Y+5 ; 0x05
418: 5e 81 ldd r21, Y+6 ; 0x06
41a: 46 32 cpi r20, 0x26 ; 38
41c: 51 05 cpc r21, r1
41e: 09 f4 brne .+2 ; 0x422 <__vector_13+0xee>
420: d3 c0 rjmp .+422 ; 0x5c8 <__stack+0xc9>
422: 04 c1 rjmp .+520 ; 0x62c <__stack+0x12d>
{
case 0:
{
if(data==0xFF)
424: 8a 81 ldd r24, Y+2 ; 0x02
426: 8f 3f cpi r24, 0xFF ; 255
428: 31 f4 brne .+12 ; 0x436 <__vector_13+0x102>
{
RxCounter++;
42a: 80 91 0a 01 lds r24, 0x010A
42e: 8f 5f subi r24, 0xFF ; 255
430: 80 93 0a 01 sts 0x010A, r24
break;
434: fb c0 rjmp .+502 ; 0x62c <__stack+0x12d>
}
else if(data==0x11)
436: 8a 81 ldd r24, Y+2 ; 0x02
438: 81 31 cpi r24, 0x11 ; 17
43a: 59 f4 brne .+22 ; 0x452 <__vector_13+0x11e>
{
DL_OVER_FLAG=1;
43c: 80 91 8c 02 lds r24, 0x028C
440: 80 61 ori r24, 0x10 ; 16
442: 80 93 8c 02 sts 0x028C, r24
RxCounter++;
446: 80 91 0a 01 lds r24, 0x010A
44a: 8f 5f subi r24, 0xFF ; 255
44c: 80 93 0a 01 sts 0x010A, r24
break;
450: ed c0 rjmp .+474 ; 0x62c <__stack+0x12d>
}
else //出错
{
RxCounter=0;
452: 10 92 0a 01 sts 0x010A, r1
UART_ERROR_FLAG=1;
456: 80 91 8c 02 lds r24, 0x028C
45a: 88 60 ori r24, 0x08 ; 8
45c: 80 93 8c 02 sts 0x028C, r24
break;
460: e5 c0 rjmp .+458 ; 0x62c <__stack+0x12d>
}
}
case 1:
{
/***************1111****************/
if(DL_OVER_FLAG)
462: 80 91 8c 02 lds r24, 0x028C
466: 80 71 andi r24, 0x10 ; 16
468: 88 23 and r24, r24
46a: 49 f0 breq .+18 ; 0x47e <__vector_13+0x14a>
{
Interval=data;
46c: 8a 81 ldd r24, Y+2 ; 0x02
46e: 80 93 65 02 sts 0x0265, r24
RxCounter++;
472: 80 91 0a 01 lds r24, 0x010A
476: 8f 5f subi r24, 0xFF ; 255
478: 80 93 0a 01 sts 0x010A, r24
break;
47c: d7 c0 rjmp .+430 ; 0x62c <__stack+0x12d>
}
/***************2222****************/
else
{
LStartTime=data;
47e: 8a 81 ldd r24, Y+2 ; 0x02
480: 80 93 b1 02 sts 0x02B1, r24
RxCounter++;
484: 80 91 0a 01 lds r24, 0x010A
488: 8f 5f subi r24, 0xFF ; 255
48a: 80 93 0a 01 sts 0x010A, r24
break;
48e: ce c0 rjmp .+412 ; 0x62c <__stack+0x12d>
}
}
case 2:
{
/***************1111****************/
if(DL_OVER_FLAG)
490: 80 91 8c 02 lds r24, 0x028C
494: 80 71 andi r24, 0x10 ; 16
496: 88 23 and r24, r24
498: c9 f0 breq .+50 ; 0x4cc <__vector_13+0x198>
{
if((Interval+data)==255)
49a: 80 91 65 02 lds r24, 0x0265
49e: 28 2f mov r18, r24
4a0: 33 27 eor r19, r19
4a2: 8a 81 ldd r24, Y+2 ; 0x02
4a4: 99 27 eor r25, r25
4a6: 82 0f add r24, r18
4a8: 93 1f adc r25, r19
4aa: 8f 3f cpi r24, 0xFF ; 255
4ac: 91 05 cpc r25, r1
4ae: 31 f4 brne .+12 ; 0x4bc <__vector_13+0x188>
{
RxCounter++;
4b0: 80 91 0a 01 lds r24, 0x010A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -