本帖最后由 xiajiean 于 2012-6-21 09:49 编辑
for(i=0;i<=PWLi;++Lti) k++; // 脉宽PWLi=255 PulseWidth; cpu atmega328 16MHz
a6: 30 91 00 01 lds r19, 0x0100 // 3 Rd ← (k)
aa: 90 91 03 01 lds r25, 0x0103 // 3 Rd ← (k)
ae: 80 e0 ldi r24, 0x00 ; 0 // 1 Rd ← K
b0: 02 c0 rjmp .+4 ; 0xb6 <main+0x10> // 2 PC ← PC + k + 1
b2: 8f 5f subi r24, 0xFF ; 255 // 1 Rd ← Rd - K
b4: 92 2f mov r25, r18 // 1 Rd ← Rr r25← r18
b6: 29 2f mov r18, r25 // 1 Rd ← Rr
b8: 2f 5f subi r18, 0xFF ; 255 // 1 Rd ← Rd - K
ba: 38 17 cp r19, r24 // 1 Rd - Rr Compare
bc: d0 f7 brcc .-12 ; 0xb2 <main+0xc> // 1/2 if (C = 0) then PC ← PC + k + 1
be: 90 93 03 01 sts 0x0103, r25 // 3 Store Direct to SRAM (k) ← Rr
c2: 80 93 02 01 sts 0x0102, r24
请问 brcc .-12 是跳到aa: 吗
另外一个循环大约是多少uS
其中变量定义为 unsigned char i, k,PWLi=255; |