⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dataproc.lis

📁 测量脉搏的源码 Cypress公司使用 CY27443 完成相关的功能
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 02EF 08                push A
 02F0 5A00              mov [__r1],X
 02F2 060003            add [__r1],3
 02F5 5100              mov A,[__r0]
 02F7 08                push A
 02F8 5100              mov A,[__r1]
 02FA 08                push A
 02FB 9D3B              xcall _median_filter
 02FD 38FD              add SP,-3
 02FF                   .dbline 145
 02FF           ;           aver = med_buffer[MEDIAN_FILTER2_LENGHT >> 1];
 02FF 5208              mov A,[X+8]
 0301 540E              mov [X+14],A
 0303 5207              mov A,[X+7]
 0305 540D              mov [X+13],A
 0307                   .dbline 147
 0307           ;        
 0307           ;           if ((instant_pulse > (aver -(aver >> 2))) && (instant_pulse < (aver + (aver >> 2)))) 
 0307 520E              mov A,[X+14]
 0309 5300              mov [__r1],A
 030B 520D              mov A,[X+13]
 030D 5300              mov [__r0],A
 030F 70FB              and F,-5
 0311 6E00              rrc [__r0]
 0313 6E00              rrc [__r1]
 0315 70FB              and F,-5
 0317 6E00              rrc [__r0]
 0319 6E00              rrc [__r1]
 031B 520E              mov A,[X+14]
 031D 1200              sub A,[__r1]
 031F 5300              mov [__r3],A
 0321 520D              mov A,[X+13]
 0323 1A00              sbb A,[__r0]
 0325 5300              mov [__r2],A
 0327 5201              mov A,[X+1]
 0329 3A00              cmp A,[__r2]
 032B B007              jnz X16
 032D 5202              mov A,[X+2]
 032F 3A00              cmp A,[__r3]
 0331 A183              jz L44
 0333           X16:
 0333 C181              jc L44
 0335           X15:
 0335 520E              mov A,[X+14]
 0337 0200              add A,[__r1]
 0339 5300              mov [__r1],A
 033B 520D              mov A,[X+13]
 033D 0A00              adc A,[__r0]
 033F 5300              mov [__r0],A
 0341 5201              mov A,[X+1]
 0343 3A00              cmp A,[__r0]
 0345 B007              jnz X18
 0347 5202              mov A,[X+2]
 0349 3A00              cmp A,[__r1]
 034B A169              jz L44
 034D           X18:
 034D D167              jnc L44
 034F           X17:
 034F                   .dbline 148
 034F           ;             state = RUNNING;
 034F 550202            mov [_state],2
 0352                   .dbline 149
 0352           ;         } 
 0352                   .dbline 150
 0352           ;         break;
 0352 8162              xjmp L44
 0354           L57:
 0354                   .dbline 152
 0354 5200              mov A,[X+0]
 0356 5300              mov [__r1],A
 0358 550000            mov [__r0],0
 035B 6500              asl [__r1]
 035D 6B00              rlc [__r0]
 035F 5A00              mov [__r3],X
 0361 060003            add [__r3],3
 0364 5100              mov A,[__r1]
 0366 0200              add A,[__r3]
 0368 5300              mov [__r3],A
 036A 5100              mov A,[__r0]
 036C 0A00              adc A,[__r2]
 036E 060000            add [__r1],<_pulse_buffer
 0371 0E0000            adc [__r0],>_pulse_buffer
 0374 3E00              mvi A,[__r1]
 0376 5300              mov [__r0],A
 0378 3E00              mvi A,[__r1]
 037A 5300              mov [__r1],A
 037C 5100              mov A,[__r0]
 037E 3F00              mvi [__r3],A
 0380 5100              mov A,[__r1]
 0382 3F00              mvi [__r3],A
 0384           L58:
 0384                   .dbline 152
 0384           ;       case RUNNING:
 0384           ;         while(i--) med_buffer[i] = pulse_buffer[i];
 0384 5200              mov A,[X+0]
 0386 5300              mov [__r1],A
 0388 550000            mov [__r0],0
 038B 1101              sub A,1
 038D 5300              mov [__r3],A
 038F 5000              mov A,0
 0391 1900              sbb A,0
 0393 5100              mov A,[__r3]
 0395 5400              mov [X+0],A
 0397 3C0000            cmp [__r0],0
 039A BFB9              jnz L57
 039C 3C0000            cmp [__r1],0
 039F BFB4              jnz L57
 03A1           X19:
 03A1                   .dbline 153
 03A1           ;         median_filter(med_buffer, MEDIAN_FILTER2_LENGHT);
 03A1 5005              mov A,5
 03A3 08                push A
 03A4 5A00              mov [__r1],X
 03A6 060003            add [__r1],3
 03A9 5100              mov A,[__r0]
 03AB 08                push A
 03AC 5100              mov A,[__r1]
 03AE 08                push A
 03AF 9C87              xcall _median_filter
 03B1 38FD              add SP,-3
 03B3                   .dbline 154
 03B3           ;         aver = med_buffer[MEDIAN_FILTER2_LENGHT >> 1];
 03B3 5208              mov A,[X+8]
 03B5 540E              mov [X+14],A
 03B7 5207              mov A,[X+7]
 03B9 540D              mov [X+13],A
 03BB                   .dbline 156
 03BB           ;       
 03BB           ;         if ((instant_pulse > (aver -(aver >> 2))) && (instant_pulse < (aver + (aver >> 2)))) pulses++;
 03BB 520E              mov A,[X+14]
 03BD 5300              mov [__r1],A
 03BF 520D              mov A,[X+13]
 03C1 5300              mov [__r0],A
 03C3 70FB              and F,-5
 03C5 6E00              rrc [__r0]
 03C7 6E00              rrc [__r1]
 03C9 70FB              and F,-5
 03CB 6E00              rrc [__r0]
 03CD 6E00              rrc [__r1]
 03CF 520E              mov A,[X+14]
 03D1 1200              sub A,[__r1]
 03D3 5300              mov [__r3],A
 03D5 520D              mov A,[X+13]
 03D7 1A00              sbb A,[__r0]
 03D9 5300              mov [__r2],A
 03DB 5201              mov A,[X+1]
 03DD 3A00              cmp A,[__r2]
 03DF B007              jnz X21
 03E1 5202              mov A,[X+2]
 03E3 3A00              cmp A,[__r3]
 03E5 A022              jz L61
 03E7           X21:
 03E7 C020              jc L61
 03E9           X20:
 03E9 520E              mov A,[X+14]
 03EB 0200              add A,[__r1]
 03ED 5300              mov [__r1],A
 03EF 520D              mov A,[X+13]
 03F1 0A00              adc A,[__r0]
 03F3 5300              mov [__r0],A
 03F5 5201              mov A,[X+1]
 03F7 3A00              cmp A,[__r0]
 03F9 B007              jnz X23
 03FB 5202              mov A,[X+2]
 03FD 3A00              cmp A,[__r1]
 03FF A008              jz L61
 0401           X23:
 0401 D006              jnc L61
 0403           X22:
 0403                   .dbline 156
 0403 7607              inc [L40+1]
 0405 0E0600            adc [L40],0
 0408           L61:
 0408                   .dbline 158
 0408           ;         
 0408           ;         total_intervals += instant_pulse; 
 0408 5202              mov A,[X+2]
 040A 0405              add [L39+1],A
 040C 5201              mov A,[X+1]
 040E 0C04              adc [L39],A
 0410                   .dbline 159
 0410           ;         if (total_intervals > PULSE_TIME_INTERVAL)
 0410 5F0005            mov [__r3],[L39+1]
 0413 5F0004            mov [__r2],[L39]
 0416 5000              mov A,0
 0418 3180              xor A,-128
 041A 5300              mov [__rY],A
 041C 5000              mov A,0
 041E 3180              xor A,-128
 0420 5300              mov [__rZ],A
 0422 550000            mov [__rX],0
 0425 5100              mov A,[__r3]
 0427 11B8              sub A,-72
 0429 2C00              or [__rX],A
 042B 5100              mov A,[__r2]
 042D 190B              sbb A,11
 042F 2C00              or [__rX],A
 0431 5000              mov A,0
 0433 1900              sbb A,0
 0435 2C00              or [__rX],A
 0437 5100              mov A,[__rY]
 0439 1A00              sbb A,[__rZ]
 043B 2C00              or [__rX],A
 043D C077              jc L44
 043F 5100              mov A,[__rX]
 0441 A073              jz L44
 0443           X24:
 0443                   .dbline 160
 0443           ;         { 
 0443                   .dbline 161
 0443           ;           state = RESET;
 0443 550200            mov [_state],0
 0446                   .dbline 162
 0446           ;           return (PULSE_SCALE_FACTOR*pulses*PULSE_TIME_INTERVAL)/(long)total_intervals;
 0446 5F0007            mov [__r3],[L40+1]
 0449 5F0006            mov [__r2],[L40]
 044C 550000            mov [__r1],0
 044F 550000            mov [__r0],0
 0452 6500              asl [__r3]
 0454 6B00              rlc [__r2]
 0456 6B00              rlc [__r1]
 0458 6B00              rlc [__r0]
 045A 5100              mov A,[__r0]
 045C 08                push A
 045D 5100              mov A,[__r1]
 045F 08                push A
 0460 5100              mov A,[__r2]
 0462 08                push A
 0463 5100              mov A,[__r3]
 0465 08                push A
 0466 5000              mov A,0
 0468 08                push A
 0469 08                push A
 046A 500B              mov A,11
 046C 08                push A
 046D 50B8              mov A,-72
 046F 08                push A
 0470 7C0000            xcall __mul_32X32_32
 0473 38FC              add SP,-4
 0475 18                pop A
 0476 5300              mov [__r3],A
 0478 18                pop A
 0479 5300              mov [__r2],A
 047B 18                pop A
 047C 5300              mov [__r1],A
 047E 18                pop A
 047F 5300              mov [__r0],A
 0481 5F0005            mov [__r7],[L39+1]
 0484 5F0004            mov [__r6],[L39]
 0487 5000              mov A,0
 0489 08                push A
 048A 08                push A
 048B 5100              mov A,[__r6]
 048D 08                push A
 048E 5100              mov A,[__r7]
 0490 08                push A
 0491 5100              mov A,[__r0]
 0493 08                push A
 0494 5100              mov A,[__r1]
 0496 08                push A
 0497 5100              mov A,[__r2]
 0499 08                push A
 049A 5100              mov A,[__r3]
 049C 08                push A
 049D 7C0000            xcall __divmod_32X32_32
 04A0 18                pop A
 04A1 5300              mov [__r3],A
 04A3 18                pop A
 04A4 5300              mov [__r2],A
 04A6 18                pop A
 04A7 18                pop A
 04A8 38FC              add SP,-4
 04AA 5F0000            mov [__r1],[__r3]
 04AD 5F0000            mov [__r0],[__r2]
 04B0 8049              xjmp L38
 04B2           X9:
 04B2                   .dbline 164
 04B2           ;         }
 04B2           ;         break;  
 04B2           L43:
 04B2                   .dbline 167
 04B2           ;         
 04B2           ;      default:
 04B2           ;        state = RESET;
 04B2 550200            mov [_state],0
 04B5                   .dbline 168
 04B5           ;        break;
 04B5           L44:
 04B5                   .dbline 171
 04B5           ;     }
 04B5           ;     
 04B5           ;     pulse_buffer[index++] = instant_pulse;
 04B5 5F0003            mov [__r1],[_index]
 04B8 550000            mov [__r0],0
 04BB 5100              mov A,[__r1]
 04BD 0101              add A,1
 04BF 5300              mov [__r3],A
 04C1 5000              mov A,0
 04C3 0900              adc A,0
 04C5 5F0300            mov [_index],[__r3]
 04C8 6500              asl [__r1]
 04CA 6B00              rlc [__r0]
 04CC 060000            add [__r1],<_pulse_buffer
 04CF 0E0000            adc [__r0],>_pulse_buffer
 04D2 5201              mov A,[X+1]
 04D4 3F00              mvi [__r1],A
 04D6 5202              mov A,[X+2]
 04D8 3F00              mvi [__r1],A
 04DA                   .dbline 172
 04DA           ;     if (index == MEDIAN_FILTER2_LENGHT) index = 0; 
 04DA 3C0305            cmp [_index],5
 04DD B016              jnz L42
 04DF                   .dbline 172
 04DF 550300            mov [_index],0
 04E2                   .dbline 173
 04E2           ;   }
 04E2 8011              xjmp L42
 04E4           L41:
 04E4                   .dbline 175
 04E4           ;     else 
 04E4           ;   if (!CHECKTIMER()) 
 04E4 3C0000            cmp [_timer_pulse],0
 04E7 B00C              jnz L67
 04E9                   .dbline 176
 04E9           ;   {
 04E9                   .dbline 177
 04E9           ;     state = RESET;
 04E9 550200            mov [_state],0
 04EC                   .dbline 178
 04EC           ;     return PULSE_CALC_ERROR;   
 04EC 5500FF            mov [__r1],-1
 04EF 5500FF            mov [__r0],-1
 04F2 8007              xjmp L38
 04F4           L67:
 04F4           L42:
 04F4                   .dbline 181
 04F4           ;   }  
 04F4           ;     
 04F4           ;   return PULSE_IN_PROGRESS;
 04F4 550000            mov [__r1],0
 04F7 550000            mov [__r0],0
 04FA                   .dbline -2
 04FA           L38:
 04FA 38EF              add SP,-17
 04FC 20                pop X
 04FD                   .dbline 0 ; func end
 04FD 7F                ret
 04FE                   .dbsym l aver 13 i
 04FE                   .dbsym l med_buffer 3 A[10:5]i
 04FE                   .dbsym l instant_pulse 1 I
 04FE                   .dbsym l i 0 c
 04FE                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile ./dataproc.c
 0000           _pulse_buffer:
 0000                   .blkb 26
 001A                   .dbsym s pulse_buffer _pulse_buffer A[26:13]i

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -