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

📄 main.lis

📁 测量脉搏的源码 Cypress公司使用 CY27443 完成相关的功能
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 0362 436604            or REG[102],4
 0365 70EF              and F,0xEF ; iopage = 0
 0367                   .dbline 149
 0367           ;   
 0367           ;   SETBIT(INT_MSK3, 0);
 0367 43DE01            or REG[-34],1
 036A                   .dbline 150
 036A           ;   SETBIT(INT_MSK0, 6);
 036A 43E040            or REG[-32],64
 036D                   .dbline 152
 036D           ;   
 036D           ;   ADC_SetResolution(13);
 036D 10                push X
 036E 500D              mov A,13
 0370 7C0000            xcall _ADC_SetResolution
 0373 20                pop X
 0374                   .dbline 154
 0374           ;   
 0374           ;   ADC_bPWM_IntTime_LSB = (BYTE)ADC_INTEGRATION;
 0374 622620            mov REG[38],32
 0377                   .dbline 155
 0377           ;   ADC_bPWM_IntTime_MSB = (BYTE)(ADC_INTEGRATION >> 8);
 0377 622A4E            mov REG[42],78
 037A                   .dbline 157
 037A           ;   
 037A           ;   ADC_bPWM_Period_LSB = (BYTE)ADC_PERIOD;
 037A 622584            mov REG[37],-124
 037D                   .dbline 158
 037D           ;   ADC_bPWM_Period_MSB = (BYTE)(ADC_PERIOD >> 8);
 037D 62294E            mov REG[41],78
 0380                   .dbline 160
 0380           ;   
 0380           ;   M8C_EnableGInt;
 0380 7101                      or  F, 01h
 0382           
 0382                   .dbline 166
 0382           ;   
 0382           ; #if DEBUG  
 0382           ;   Exchange_Start();
 0382           ; #endif  
 0382           ;     
 0382           ;   ADC_Start(ADC_HIGHPOWER);
 0382 10                push X
 0383 5003              mov A,3
 0385 7C0000            xcall _ADC_Start
 0388                   .dbline 167
 0388           ;   ADC_GetSamples(0);  
 0388 5000              mov A,0
 038A 7C0000            xcall _ADC_GetSamples
 038D 20                pop X
 038E                   .dbline 170
 038E           ;     
 038E           ;   
 038E           ;   pulse.flags = BIT(FLAG_INIT_BIT);
 038E 550802            mov [_pulse+8],2
 0391                   .dbline 171
 0391           ;   LCDUpdate(&pulse);
 0391 5000              mov A,>_pulse
 0393 08                push A
 0394 5000              mov A,<_pulse
 0396 08                push A
 0397 9CF7              xcall _LCDUpdate
 0399 38FE              add SP,-2
 039B 812E              xjmp L41
 039D           L40:
 039D                   .dbline 174
 039D           ;   
 039D           ;   while(1) 
 039D           ;   {
 039D                   .dbline 175
 039D           ;     temp = ReadButtons();
 039D 9F79              xcall _ReadButtons
 039F 530A              mov [_temp+1],A
 03A1 550900            mov [_temp],0
 03A4                   .dbline 176
 03A4           ;     if (CHECKBIT(temp, BUTTON_MODE_BIT))
 03A4 510A              mov A,[_temp+1]
 03A6 2120              and A,32
 03A8 5300              mov [__r1],A
 03AA 5109              mov A,[_temp]
 03AC 2100              and A,0
 03AE B006              jnz X8
 03B0 3C0000            cmp [__r1],0
 03B3 A011              jz L43
 03B5           X8:
 03B5                   .dbline 177
 03B5           ;     {
 03B5                   .dbline 178
 03B5           ;       pulse.flags ^= BIT(FLAG_MODE_BIT);
 03B5 360804            xor [_pulse+8],4
 03B8                   .dbline 179
 03B8           ;       Pulse_Init_Calculate();     
 03B8 7C0000            xcall _Pulse_Init_Calculate
 03BB                   .dbline 180
 03BB           ;       LCDUpdate(&pulse);
 03BB 5000              mov A,>_pulse
 03BD 08                push A
 03BE 5000              mov A,<_pulse
 03C0 08                push A
 03C1 9CCD              xcall _LCDUpdate
 03C3 38FE              add SP,-2
 03C5                   .dbline 181
 03C5           ;     }  
 03C5           L43:
 03C5                   .dbline 183
 03C5           ;     
 03C5           ;     if (CHECKBIT(temp, BUTTON_RESET_BIT))
 03C5 510A              mov A,[_temp+1]
 03C7 2108              and A,8
 03C9 5300              mov [__r1],A
 03CB 5109              mov A,[_temp]
 03CD 2100              and A,0
 03CF B006              jnz X9
 03D1 3C0000            cmp [__r1],0
 03D4 A020              jz L46
 03D6           X9:
 03D6                   .dbline 184
 03D6           ;     {
 03D6                   .dbline 185
 03D6           ;       pulse.last = pulse.min = pulse.max = 0;
 03D6 550500            mov [_pulse+4+1],0
 03D9 550400            mov [_pulse+4],0
 03DC 550300            mov [_pulse+2+1],0
 03DF 550200            mov [_pulse+2],0
 03E2 550100            mov [_pulse+1],0
 03E5 550000            mov [_pulse],0
 03E8                   .dbline 186
 03E8           ;       LCDUpdate(&pulse);
 03E8 5000              mov A,>_pulse
 03EA 08                push A
 03EB 5000              mov A,<_pulse
 03ED 08                push A
 03EE 9CA0              xcall _LCDUpdate
 03F0 38FE              add SP,-2
 03F2                   .dbline 187
 03F2           ;       Pulse_Init_Calculate();      
 03F2 7C0000            xcall _Pulse_Init_Calculate
 03F5                   .dbline 188
 03F5           ;     }
 03F5           L46:
 03F5                   .dbline 190
 03F5           ;     
 03F5           ;     temp = (CHECKBIT(pulse.flags, FLAG_MODE_BIT))?
 03F5 470804            tst [_pulse+8],4
 03F8 A00E              jz L52
 03FA 7C0000            xcall _Pulse_Averaged_Calculate
 03FD 5100              mov A,[__r1]
 03FF 5401              mov [X+1],A
 0401 5100              mov A,[__r0]
 0403 5400              mov [X+0],A
 0405 800C              xjmp L53
 0407           L52:
 0407 7C0000            xcall _Pulse_Instant_Calculate
 040A 5100              mov A,[__r1]
 040C 5401              mov [X+1],A
 040E 5100              mov A,[__r0]
 0410 5400              mov [X+0],A
 0412           L53:
 0412 5201              mov A,[X+1]
 0414 530A              mov [_temp+1],A
 0416 5200              mov A,[X+0]
 0418 5309              mov [_temp],A
 041A                   .dbline 193
 041A           ;       (Pulse_Averaged_Calculate()) : (Pulse_Instant_Calculate());
 041A           ;     
 041A           ;     pulse.gain = GetGainLevel();
 041A 7C0000            xcall _GetGainLevel
 041D 5306              mov [_pulse+6],A
 041F                   .dbline 194
 041F           ;     pulse.swing = GetADCRange() >> ADC_RANGE_SHIFT;
 041F 7C0000            xcall _GetADCRange
 0422 6800              asr [__r0]
 0424 6E00              rrc [__r1]
 0426 6800              asr [__r0]
 0428 6E00              rrc [__r1]
 042A 6800              asr [__r0]
 042C 6E00              rrc [__r1]
 042E 6800              asr [__r0]
 0430 6E00              rrc [__r1]
 0432 6800              asr [__r0]
 0434 6E00              rrc [__r1]
 0436 6800              asr [__r0]
 0438 6E00              rrc [__r1]
 043A 5F0700            mov [_pulse+7],[__r1]
 043D                   .dbline 196
 043D           ;     
 043D           ;     if (PULSE_IN_PROGRESS == temp) CLEARBIT(pulse.flags, FLAG_ERROR_BIT);
 043D 3C0900            cmp [_temp],0
 0440 B00B              jnz L56
 0442 3C0A00            cmp [_temp+1],0
 0445 B006              jnz L56
 0447           X10:
 0447                   .dbline 196
 0447 2608FE            and [_pulse+8],-2
 044A 806E              xjmp L57
 044C           L56:
 044C                   .dbline 198
 044C           ;       else 
 044C           ;     if (PULSE_CALC_ERROR == temp) SETBIT(pulse.flags, FLAG_ERROR_BIT);
 044C 3C09FF            cmp [_temp],-1
 044F B00D              jnz L59
 0451 3C0AFF            cmp [_temp+1],-1
 0454 B008              jnz L59
 0456           X11:
 0456                   .dbline 198
 0456 2E0801            or [_pulse+8],1
 0459 5108              mov A,[_pulse+8]
 045B 805D              xjmp L60
 045D           L59:
 045D                   .dbline 200
 045D           ;      else
 045D           ;     {
 045D                   .dbline 201
 045D           ;       pulse.last = temp;
 045D 5F010A            mov [_pulse+1],[_temp+1]
 0460 5F0009            mov [_pulse],[_temp]
 0463                   .dbline 202
 0463           ;       if (pulse.max < pulse.last) pulse.max = pulse.last;
 0463 5104              mov A,[_pulse+4]
 0465 3180              xor A,-128
 0467 5300              mov [__rY],A
 0469 5100              mov A,[_pulse]
 046B 3180              xor A,-128
 046D 5300              mov [__rZ],A
 046F 550000            mov [__rX],0
 0472 5105              mov A,[_pulse+4+1]
 0474 1201              sub A,[_pulse+1]
 0476 2C00              or [__rX],A
 0478 5100              mov A,[__rY]
 047A 1A00              sbb A,[__rZ]
 047C 2C00              or [__rX],A
 047E D00B              jnc L62
 0480 5100              mov A,[__rX]
 0482 A007              jz L62
 0484           X12:
 0484                   .dbline 202
 0484 5F0501            mov [_pulse+4+1],[_pulse+1]
 0487 5F0400            mov [_pulse+4],[_pulse]
 048A           L62:
 048A                   .dbline 203
 048A 5102              mov A,[_pulse+2]
 048C 3180              xor A,-128
 048E 5300              mov [__rY],A
 0490 5100              mov A,[_pulse]
 0492 3180              xor A,-128
 0494 5300              mov [__rZ],A
 0496 550000            mov [__rX],0
 0499 5103              mov A,[_pulse+2+1]
 049B 1201              sub A,[_pulse+1]
 049D 2C00              or [__rX],A
 049F 5100              mov A,[__rY]
 04A1 1A00              sbb A,[__rZ]
 04A3 2C00              or [__rX],A
 04A5 A003              jz X13
 04A7 D00B              jnc L70
 04A9           X13:
 04A9 3C0200            cmp [_pulse+2],0
 04AC B00C              jnz L66
 04AE 3C0300            cmp [_pulse+2+1],0
 04B1 B007              jnz L66
 04B3           X14:
 04B3           L70:
 04B3                   .dbline 203
 04B3           ;       if ((pulse.min > pulse.last) || (0 == pulse.min)) pulse.min = pulse.last;
 04B3 5F0301            mov [_pulse+2+1],[_pulse+1]
 04B6 5F0200            mov [_pulse+2],[_pulse]
 04B9           L66:
 04B9                   .dbline 204
 04B9           ;     } 
 04B9           L60:
 04B9           L57:
 04B9                   .dbline 206
 04B9           ;     
 04B9           ;     if (Check_Update_Timeout()) LCDUpdate(&pulse);
 04B9 7C0000            xcall _Check_Update_Timeout
 04BC 3900              cmp A,0
 04BE A00B              jz L72
 04C0                   .dbline 206
 04C0 5000              mov A,>_pulse
 04C2 08                push A
 04C3 5000              mov A,<_pulse
 04C5 08                push A
 04C6 9BC8              xcall _LCDUpdate
 04C8 38FE              add SP,-2
 04CA           L72:
 04CA                   .dbline 215
 04CA           L41:
 04CA                   .dbline 173
 04CA 8ED2              xjmp L40
 04CC           X7:
 04CC                   .dbline -2
 04CC                   .dbline 218
 04CC           ;     
 04CC           ; #if DEBUG
 04CC           ;      while (!ADC_fIsDataAvailable());
 04CC           ;      ADC_Data.y = GetDebugVar();
 04CC           ;      ADC_Data.x = ADC_iGetDataClearFlag();
 04CC           ;      Exchange_SendBuf((BYTE*)&ADC_Data, 4);
 04CC           ; #endif    
 04CC           ;      
 04CC           ;   }
 04CC           ;    
 04CC           ;   
 04CC           ; }
 04CC           L38:
 04CC 38FE              add SP,-2
 04CE 20                pop X
 04CF                   .dbline 0 ; func end
 04CF 7F                ret
 04D0                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile ./main.c
 0000           _pulse:
 0000                   .blkb 9
 0009                   .dbsym s pulse _pulse X
 0009           _temp:
 0009                   .blkb 2
 000B                   .dbsym s temp _temp I
                        .area lit(rom, con, rel)
 01C7           L33:
 01C7 576F726B2000      .byte 'W,'o,'r,'k,32,0
 01CD           L32:
 01CD 4572726F7200      .byte 'E,'r,'r,'o,'r,0
 01D3           L29:
 01D3 4661737400        .byte 'F,'a,'s,'t,0
 01D8           L28:
 01D8 536C6F7700        .byte 'S,'l,'o,'w,0
 01DD           L23:
 01DD 202D2D2000        .byte 32,45,45,32,0
 01E2           L20:
 01E2 434F4E443A00      .byte 'C,'O,'N,'D,58,0
 01E8           L19:
 01E8 4741494E3A00      .byte 'G,'A,'I,'N,58,0
 01EE           L18:
 01EE 4D4F44453A00      .byte 'M,'O,'D,'E,58,0
 01F4           L17:
 01F4 204D41583A00      .byte 32,'M,'A,'X,58,0
 01FA           L16:
 01FA 204D494E3A00      .byte 32,'M,'I,'N,58,0
 0200           L15:
 0200 4C4153543A00      .byte 'L,'A,'S,'T,58,0

⌨️ 快捷键说明

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