📄 pwm32.lss
字号:
8ec: 90 93 89 00 sts 0x0089, r25
8f0: 80 93 88 00 sts 0x0088, r24
8f4: df 91 pop r29
8f6: cf 91 pop r28
8f8: 08 95 ret
000008fa <T1Set17p5ms>:
}
/************************************************************
Function Name: T2Init
Function: Timer0 initial
Paramenter: None
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void T1Set17p5ms(void)
{
8fa: cf 93 push r28
8fc: df 93 push r29
8fe: cd b7 in r28, 0x3d ; 61
900: de b7 in r29, 0x3e ; 62
TCNT1 = 0;
902: 10 92 85 00 sts 0x0085, r1
906: 10 92 84 00 sts 0x0084, r1
OCR1A = 2240; /*17.5ms*/
90a: 80 ec ldi r24, 0xC0 ; 192
90c: 98 e0 ldi r25, 0x08 ; 8
90e: 90 93 89 00 sts 0x0089, r25
912: 80 93 88 00 sts 0x0088, r24
916: df 91 pop r29
918: cf 91 pop r28
91a: 08 95 ret
0000091c <T1Init>:
}
/************************************************************
Function Name: T2Init
Function: Timer0 initial
Paramenter: None
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void T1Init(void)
{
91c: cf 93 push r28
91e: df 93 push r29
920: cd b7 in r28, 0x3d ; 61
922: de b7 in r29, 0x3e ; 62
OCR1A = 63; /* 0.5ms*/
924: 8f e3 ldi r24, 0x3F ; 63
926: 90 e0 ldi r25, 0x00 ; 0
928: 90 93 89 00 sts 0x0089, r25
92c: 80 93 88 00 sts 0x0088, r24
TCNT1 = 0;
930: 10 92 85 00 sts 0x0085, r1
934: 10 92 84 00 sts 0x0084, r1
TCCR1B = 8; /*CTC模式*/
938: 88 e0 ldi r24, 0x08 ; 8
93a: 80 93 81 00 sts 0x0081, r24
TIMSK1 |= (1<<OCIE1A); /*中断允许*/
93e: 80 91 6f 00 lds r24, 0x006F
942: 82 60 ori r24, 0x02 ; 2
944: 80 93 6f 00 sts 0x006F, r24
948: df 91 pop r29
94a: cf 91 pop r28
94c: 08 95 ret
0000094e <T1Start>:
}
/************************************************************
Function Name: T2Start
Function: Timer0 start
Paramenter: None
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void T1Start(void)
{
94e: cf 93 push r28
950: df 93 push r29
952: cd b7 in r28, 0x3d ; 61
954: de b7 in r29, 0x3e ; 62
TCNT1 = 0;
956: 10 92 85 00 sts 0x0085, r1
95a: 10 92 84 00 sts 0x0084, r1
TCCR1B |= 0x03; /*设置定时器的分频值为64分频并开始*/
95e: 80 91 81 00 lds r24, 0x0081
962: 83 60 ori r24, 0x03 ; 3
964: 80 93 81 00 sts 0x0081, r24
968: df 91 pop r29
96a: cf 91 pop r28
96c: 08 95 ret
0000096e <T1Close>:
}
/************************************************************
Function Name: T2Close
Function: Timer0 close
Paramenter: None
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void T1Close(void)
{
96e: cf 93 push r28
970: df 93 push r29
972: cd b7 in r28, 0x3d ; 61
974: de b7 in r29, 0x3e ; 62
TCCR1A &= 0xF8; /*关闭定时器*/
976: 88 ef ldi r24, 0xF8 ; 248
978: 90 91 80 00 lds r25, 0x0080
97c: 89 23 and r24, r25
97e: 80 93 80 00 sts 0x0080, r24
982: df 91 pop r29
984: cf 91 pop r28
986: 08 95 ret
00000988 <__vector_7>:
}
/************************************************************
Function Name: SIGNAL(TIMER0_COMPA_vect)
Function: Timer0 interrupt
Paramenter: TIMER0_COMPA_vect
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
SIGNAL(TIMER1_COMPA_vect)
{
988: 1f 92 push r1
98a: 0f 92 push r0
98c: 0f b6 in r0, 0x3f ; 63
98e: 0f 92 push r0
990: 11 24 eor r1, r1
992: 2f 93 push r18
994: 3f 93 push r19
996: 4f 93 push r20
998: 5f 93 push r21
99a: 6f 93 push r22
99c: 7f 93 push r23
99e: 8f 93 push r24
9a0: 9f 93 push r25
9a2: af 93 push r26
9a4: bf 93 push r27
9a6: ef 93 push r30
9a8: ff 93 push r31
9aa: cf 93 push r28
9ac: df 93 push r29
9ae: cd b7 in r28, 0x3d ; 61
9b0: de b7 in r29, 0x3e ; 62
9b2: 22 97 sbiw r28, 0x02 ; 2
9b4: de bf out 0x3e, r29 ; 62
9b6: cd bf out 0x3d, r28 ; 61
unsigned char static PwmCtrTimeCounter=1;
switch(PwmCtrTimeCounter)
9b8: 80 91 00 01 lds r24, 0x0100
9bc: 28 2f mov r18, r24
9be: 33 27 eor r19, r19
9c0: 3a 83 std Y+2, r19 ; 0x02
9c2: 29 83 std Y+1, r18 ; 0x01
9c4: 89 81 ldd r24, Y+1 ; 0x01
9c6: 9a 81 ldd r25, Y+2 ; 0x02
9c8: 82 30 cpi r24, 0x02 ; 2
9ca: 91 05 cpc r25, r1
9cc: e9 f0 breq .+58 ; 0xa08 <__vector_7+0x80>
9ce: 29 81 ldd r18, Y+1 ; 0x01
9d0: 3a 81 ldd r19, Y+2 ; 0x02
9d2: 23 30 cpi r18, 0x03 ; 3
9d4: 31 05 cpc r19, r1
9d6: 34 f4 brge .+12 ; 0x9e4 <__vector_7+0x5c>
9d8: 89 81 ldd r24, Y+1 ; 0x01
9da: 9a 81 ldd r25, Y+2 ; 0x02
9dc: 81 30 cpi r24, 0x01 ; 1
9de: 91 05 cpc r25, r1
9e0: 61 f0 breq .+24 ; 0x9fa <__vector_7+0x72>
9e2: 46 c0 rjmp .+140 ; 0xa70 <__vector_7+0xe8>
9e4: 29 81 ldd r18, Y+1 ; 0x01
9e6: 3a 81 ldd r19, Y+2 ; 0x02
9e8: 23 30 cpi r18, 0x03 ; 3
9ea: 31 05 cpc r19, r1
9ec: b1 f0 breq .+44 ; 0xa1a <__vector_7+0x92>
9ee: 89 81 ldd r24, Y+1 ; 0x01
9f0: 9a 81 ldd r25, Y+2 ; 0x02
9f2: 84 30 cpi r24, 0x04 ; 4
9f4: 91 05 cpc r25, r1
9f6: b9 f1 breq .+110 ; 0xa66 <__vector_7+0xde>
9f8: 3b c0 rjmp .+118 ; 0xa70 <__vector_7+0xe8>
{
case 1:
{
PwmStepCounter=0;
9fa: 10 92 b0 02 sts 0x02B0, r1
TurnOnPwm();
9fe: 0e 94 04 07 call 0xe08 <TurnOnPwm>
T1Set0p5ms();
a02: 0e 94 4a 04 call 0x894 <T1Set0p5ms>
break;
a06: 36 c0 rjmp .+108 ; 0xa74 <__vector_7+0xec>
}
case 2:
{
PwmStepCounter=0;
a08: 10 92 b0 02 sts 0x02B0, r1
TrueStepCount=0;
a0c: 10 92 88 02 sts 0x0288, r1
T1Set2ms( );
a10: 0e 94 5b 04 call 0x8b6 <T1Set2ms>
T0Start( ); //开始
a14: 0e 94 18 04 call 0x830 <T0Start>
break;
a18: 2d c0 rjmp .+90 ; 0xa74 <__vector_7+0xec>
}
case 3:
{
T0Close( );
a1a: 0e 94 26 04 call 0x84c <T0Close>
PwmStepCounter=0;
a1e: 10 92 b0 02 sts 0x02B0, r1
ClrPwmPort( );
a22: 0e 94 17 07 call 0xe2e <ClrPwmPort>
if(IS_AD_INPUT && (!RUN_FLAG))
a26: 80 91 2c 00 lds r24, 0x002C
a2a: 99 27 eor r25, r25
a2c: 80 74 andi r24, 0x40 ; 64
a2e: 90 70 andi r25, 0x00 ; 0
a30: 00 97 sbiw r24, 0x00 ; 0
a32: 79 f4 brne .+30 ; 0xa52 <__vector_7+0xca>
a34: 80 91 c0 01 lds r24, 0x01C0
a38: 81 70 andi r24, 0x01 ; 1
a3a: 88 23 and r24, r24
a3c: 51 f4 brne .+20 ; 0xa52 <__vector_7+0xca>
{
AD_FLAG=1;
a3e: 80 91 c0 01 lds r24, 0x01C0
a42: 82 60 ori r24, 0x02 ; 2
a44: 80 93 c0 01 sts 0x01C0, r24
T1Set17p5ms( );
a48: 0e 94 7d 04 call 0x8fa <T1Set17p5ms>
PwmCtrTimeCounter=0;
a4c: 10 92 00 01 sts 0x0100, r1
a50: 07 c0 rjmp .+14 ; 0xa60 <__vector_7+0xd8>
}
else
{
AD_FLAG=0;
a52: 80 91 c0 01 lds r24, 0x01C0
a56: 8d 7f andi r24, 0xFD ; 253
a58: 80 93 c0 01 sts 0x01C0, r24
T1Set8p7ms( );
a5c: 0e 94 6c 04 call 0x8d8 <T1Set8p7ms>
}
FuctionProcess();
a60: 0e 94 c5 12 call 0x258a <FuctionProcess>
break;
a64: 07 c0 rjmp .+14 ; 0xa74 <__vector_7+0xec>
}
case 4:
{
PwmCtrTimeCounter=0;
a66: 10 92 00 01 sts 0x0100, r1
FuctionProcess();
a6a: 0e 94 c5 12 call 0x258a <FuctionProcess>
break;
a6e: 02 c0 rjmp .+4 ; 0xa74 <__vector_7+0xec>
}
default:
{
PwmCtrTimeCounter=0;
a70: 10 92 00 01 sts 0x0100, r1
break;
}
}
PwmCtrTimeCounter++;
a74: 80 91 00 01 lds r24, 0x0100
a78: 8f 5f subi r24, 0xFF ; 255
a7a: 80 93 00 01 sts 0x0100, r24
a7e: 22 96 adiw r28, 0x02 ; 2
a80: f8 94 cli
a82: de bf out 0x3e, r29 ; 62
a84: cd bf out 0x3d, r28 ; 61
a86: df 91 pop r29
a88: cf 91 pop r28
a8a: ff 91 pop r31
a8c: ef 91 pop r30
a8e: bf 91 pop r27
a90: af 91 pop r26
a92: 9f 91 pop r25
a94: 8f 91 pop r24
a96: 7f 91 pop r23
a98: 6f 91 pop r22
a9a: 5f 91 pop r21
a9c: 4f 91 pop r20
a9e: 3f 91 pop r19
aa0: 2f 91 pop r18
aa2: 0f 90 pop r0
aa4: 0f be out 0x3f, r0 ; 63
aa6: 0f 90 pop r0
aa8: 1f 90 pop r1
aaa: 18 95 reti
00000aac <T2Init>:
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void T2Init(void)
{
aac: cf 93 push r28
aae: df 93 push r29
ab0: cd b7 in r28, 0x3d ; 61
ab2: de b7 in r29, 0x3e ; 62
OCR2A = 77; /* 10ms频率为100hz*/
ab4: 8d e4 ldi r24, 0x4D ; 77
ab6: 80 93 b3 00 sts 0x00B3, r24
TCCR2A = 8; /*CTC模式*/
aba: 88 e0 ldi r24, 0x08 ; 8
abc: 80 93 b0 00 sts 0x00B0, r24
TIMSK2 |= (1<<OCIE2A); /*中断允许*/
ac0: 80 91 70 00 lds r24, 0x0070
ac4: 82 60 ori r24, 0x02 ; 2
ac6: 80 93 70 00 sts 0x0070, r24
aca: df 91 pop r29
acc: cf 91 pop r28
ace: 08 95 ret
00000ad0 <T2Start>:
}
/************************************************************
Function Name: T2Start
Function: Timer0 start
Paramenter: None
Return value: None
Author: Chen yuan zhen May.30.2008
*************************************************************/
void T2Start(void)
{
ad0: cf 93 push r28
ad2: df 93 push r29
ad4: cd b7 in r28, 0x3d ; 61
ad6: de b7 in r29, 0x3e ; 62
TCNT2 = 0;
ad8: 10 92 b2 00 sts 0x00B2, r1
TCCR2A |= 0x07; /*设置定时器的分频值为1024分频并开始*/
adc: 80 91 b0 00 lds r24, 0x00B0
ae0: 87 60 ori r24, 0x07 ; 7
ae2: 80 93 b0 00 sts 0x00B0, r24
ae6: df 91 po
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -