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

📄 dataproc.lis

📁 测量脉搏的源码 Cypress公司使用 CY27443 完成相关的功能
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module dataproc.c
                        .area data(ram, con, rel)
 0000           _timer_pulse:
 0000                   .blkb 1
                        .area idata
 0000 BE                .byte 190
                        .area data(ram, con, rel)
 0001                   .dbfile ./dataproc.c
 0001                   .dbsym s timer_pulse _timer_pulse X
 0001           _timer_update:
 0001                   .blkb 1
                        .area idata
 0001 10                .byte 16
                        .area data(ram, con, rel)
 0002                   .dbfile ./dataproc.c
 0002                   .dbsym s timer_update _timer_update X
 0002           _state:
 0002                   .blkb 1
                        .area idata
 0002 00                .byte 0
                        .area data(ram, con, rel)
 0003                   .dbfile ./dataproc.c
 0003                   .dbsym s state _state c
 0003           _index:
 0003                   .blkb 1
                        .area idata
 0003 00                .byte 0
                        .area data(ram, con, rel)
 0004                   .dbfile ./dataproc.c
 0004                   .dbsym s index _index c
                        .area text(rom, con, rel)
 0000                   .dbfile ./dataproc.c
 0000                   .dbfunc e SleepTimer_handler _SleepTimer_handler fV
 0000           _SleepTimer_handler::
 0000                   .dbline -1
 0000                   .dbline 41
 0000           ; #include "PSoCApi.h"
 0000           ; #include <m8c.h>
 0000           ; #include "globdefs.h"
 0000           ; #include "utils.h"
 0000           ; #include "sigproc.h"
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; #define TIMER_PULSE_INIT_VALUE 190
 0000           ; static volatile BYTE timer_pulse = TIMER_PULSE_INIT_VALUE;
 0000           ; 
 0000           ; #define INITTIMER() {timer_pulse = TIMER_PULSE_INIT_VALUE;}
 0000           ; #define CHECKTIMER()(timer_pulse)
 0000           ; 
 0000           ; #define TIMER_UPDATE_INIT_VALUE 16
 0000           ; static volatile BYTE timer_update = TIMER_UPDATE_INIT_VALUE;
 0000           ; 
 0000           ; 
 0000           ; static BYTE state = RESET;
 0000           ; static BYTE index = 0;
 0000           ; 
 0000           ; #define MEDIAN_FILTER1_LENGHT 13
 0000           ; #define MEDIAN1 (MEDIAN_FILTER1_LENGHT >> 1)
 0000           ; 
 0000           ; #define MEDIAN_FILTER2_LENGHT 5
 0000           ; #define MEDIAN2 ((MEDIAN_FILTER2_LENGHT >> 1))
 0000           ; 
 0000           ; #if (MEDIAN_FILTER1_LENGHT > MEDIAN_FILTER2_LENGHT)
 0000           ; static PULSE_INTERVAL_TYPE pulse_buffer[MEDIAN_FILTER1_LENGHT];
 0000           ; #else 
 0000           ; static PULSE_INTERVAL_TYPE pulse_buffer[MEDIAN_FILTER2_LENGHT];
 0000           ; #endif
 0000           ; 
 0000           ; #if ((MEDIAN_FILTER1_LENGHT < 3) || (MEDIAN_FILTER2_LENGHT < 3))
 0000           ; #error "please set correct lenght for filters"
 0000           ; #endif
 0000           ; 
 0000           ; #pragma interrupt_handler SleepTimer_handler;
 0000           ; void SleepTimer_handler(void)
 0000           ; {
 0000                   .dbline 42
 0000 3C00BE            cmp [_timer_pulse],-66
 0003 B006              jnz L3
 0005                   .dbline 42
 0005 430408            or REG[4],8
 0008 8004              xjmp L4
 000A           L3:
 000A                   .dbline 42
 000A           ;   if (TIMER_PULSE_INIT_VALUE == timer_pulse) SETBIT(LED_PORT, LED_BIT); else CLEARBIT(LED_PORT, LED_BIT);
 000A 4104F7            and REG[4],-9
 000D           L4:
 000D                   .dbline 43
 000D           ;   if (timer_pulse) timer_pulse--;
 000D 3C0000            cmp [_timer_pulse],0
 0010 A003              jz L5
 0012                   .dbline 43
 0012 7A00              dec [_timer_pulse]
 0014           L5:
 0014                   .dbline 45
 0014 3C0100            cmp [_timer_update],0
 0017 A003              jz L7
 0019                   .dbline 45
 0019 7A01              dec [_timer_update]
 001B           L7:
 001B                   .dbline -2
 001B                   .dbline 46
 001B           ;   
 001B           ;   if (timer_update) timer_update--;
 001B           ; }
 001B           L2:
 001B                   .dbline 0 ; func end
 001B 7E                reti
 001C                   .dbend
 001C                   .dbfunc e Check_Update_Timeout _Check_Update_Timeout fc
 001C           ;           temp -> X+0
 001C           _Check_Update_Timeout::
 001C                   .dbline -1
 001C 10                push X
 001D 4F                mov X,SP
 001E 3801              add SP,1
 0020                   .dbline 49
 0020           ; 
 0020           ; BYTE Check_Update_Timeout(void)
 0020           ; {
 0020                   .dbline 50
 0020           ;   BYTE temp = 0;
 0020 560000            mov [X+0],0
 0023                   .dbline 52
 0023           ;   
 0023           ;   M8C_DisableGInt;
 0023 70FE                      and F, FEh
 0025           
 0025                   .dbline 53
 0025           ;   if (!timer_update) 
 0025 3C0100            cmp [_timer_update],0
 0028 B007              jnz L10
 002A                   .dbline 54
 002A           ;   { 
 002A                   .dbline 55
 002A           ;     timer_update = TIMER_UPDATE_INIT_VALUE;
 002A 550110            mov [_timer_update],16
 002D                   .dbline 56
 002D           ;     temp = TRUE;
 002D 560001            mov [X+0],1
 0030                   .dbline 57
 0030           ;   }
 0030           L10:
 0030                   .dbline 58
 0030           ;   M8C_EnableGInt;
 0030 7101                      or  F, 01h
 0032           
 0032                   .dbline 60
 0032           ;   
 0032           ;   return temp;
 0032 5200              mov A,[X+0]
 0034                   .dbline -2
 0034           L9:
 0034 38FF              add SP,-1
 0036 20                pop X
 0037                   .dbline 0 ; func end
 0037 7F                ret
 0038                   .dbsym l temp 0 c
 0038                   .dbend
 0038                   .dbfunc e median_filter _median_filter fV
 0038           ;        changed -> X+3
 0038           ;           temp -> X+1
 0038           ;              i -> X+0
 0038           ;            len -> X-6
 0038           ;         buffer -> X-5
 0038           _median_filter::
 0038                   .dbline -1
 0038 10                push X
 0039 4F                mov X,SP
 003A 3804              add SP,4
 003C                   .dbline 64
 003C           ; }
 003C           ; 
 003C           ; void median_filter(PULSE_INTERVAL_TYPE *buffer, BYTE len)
 003C           ; {
 003C           L13:
 003C                   .dbline 68
 003C           ;  PULSE_INTERVAL_TYPE temp;
 003C           ;  BYTE i, changed;
 003C           ; 
 003C           ;   do {
 003C                   .dbline 69
 003C           ;        changed = 0;
 003C 560300            mov [X+3],0
 003F                   .dbline 70
 003F           ;        for (i = 0; i < (len-1); i++)
 003F 560000            mov [X+0],0
 0042 80C8              xjmp L19
 0044           L16:
 0044                   .dbline 71
 0044           ;         if (buffer[i] > buffer[i+1]) 
 0044 5200              mov A,[X+0]
 0046 5300              mov [__r1],A
 0048 550000            mov [__r0],0
 004B 6500              asl [__r1]
 004D 6B00              rlc [__r0]
 004F 52FC              mov A,[X-4]
 0051 0400              add [__r1],A
 0053 52FB              mov A,[X-5]
 0055 0C00              adc [__r0],A
 0057 3E00              mvi A,[__r1]
 0059 5300              mov [__r0],A
 005B 3E00              mvi A,[__r1]
 005D 5300              mov [__r1],A
 005F 5200              mov A,[X+0]
 0061 5300              mov [__r3],A
 0063 550000            mov [__r2],0
 0066 060001            add [__r3],1
 0069 0E0000            adc [__r2],0
 006C 6500              asl [__r3]
 006E 6B00              rlc [__r2]
 0070 52FC              mov A,[X-4]
 0072 0400              add [__r3],A
 0074 52FB              mov A,[X-5]
 0076 0C00              adc [__r2],A
 0078 3E00              mvi A,[__r3]
 007A 5300              mov [__r2],A
 007C 3E00              mvi A,[__r3]
 007E 5300              mov [__r3],A
 0080 5100              mov A,[__r0]
 0082 3A00              cmp A,[__r2]
 0084 B007              jnz X1
 0086 5100              mov A,[__r1]
 0088 3A00              cmp A,[__r3]
 008A A07E              jz L20
 008C           X1:
 008C C07C              jc L20
 008E           X0:
 008E                   .dbline 72
 008E           ;         {
 008E                   .dbline 73
 008E           ;            changed = 1;
 008E 560301            mov [X+3],1
 0091                   .dbline 75
 0091           ;            
 0091           ;            temp = buffer[i]; 
 0091 5200              mov A,[X+0]
 0093 5300              mov [__r1],A
 0095 550000            mov [__r0],0
 0098 6500              asl [__r1]
 009A 6B00              rlc [__r0]
 009C 52FC              mov A,[X-4]
 009E 0400              add [__r1],A
 00A0 52FB              mov A,[X-5]
 00A2 0C00              adc [__r0],A
 00A4 3E00              mvi A,[__r1]
 00A6 5401              mov [X+1],A
 00A8 3E00              mvi A,[__r1]
 00AA 5402              mov [X+2],A
 00AC                   .dbline 76
 00AC           ;            buffer[i] = buffer[i+1];
 00AC 5200              mov A,[X+0]
 00AE 5300              mov [__r1],A
 00B0 550000            mov [__r0],0
 00B3 6500              asl [__r1]
 00B5 6B00              rlc [__r0]
 00B7 52FC              mov A,[X-4]
 00B9 0400              add [__r1],A
 00BB 52FB              mov A,[X-5]
 00BD 0C00              adc [__r0],A
 00BF 5200              mov A,[X+0]
 00C1 5300              mov [__r3],A
 00C3 550000            mov [__r2],0
 00C6 060001            add [__r3],1
 00C9 0E0000            adc [__r2],0
 00CC 6500              asl [__r3]
 00CE 6B00              rlc [__r2]
 00D0 52FC              mov A,[X-4]
 00D2 0400              add [__r3],A
 00D4 52FB              mov A,[X-5]
 00D6 0C00              adc [__r2],A
 00D8 3E00              mvi A,[__r3]
 00DA 5300              mov [__r2],A
 00DC 3E00              mvi A,[__r3]
 00DE 5300              mov [__r3],A
 00E0 5100              mov A,[__r2]
 00E2 3F00              mvi [__r1],A
 00E4 5100              mov A,[__r3]
 00E6 3F00              mvi [__r1],A
 00E8                   .dbline 77
 00E8           ;            buffer[i+1] = temp;
 00E8 5200              mov A,[X+0]
 00EA 5300              mov [__r1],A
 00EC 550000            mov [__r0],0
 00EF 060001            add [__r1],1
 00F2 0E0000            adc [__r0],0
 00F5 6500              asl [__r1]
 00F7 6B00              rlc [__r0]
 00F9 52FC              mov A,[X-4]
 00FB 0400              add [__r1],A
 00FD 52FB              mov A,[X-5]
 00FF 0C00              adc [__r0],A
 0101 5201              mov A,[X+1]
 0103 3F00              mvi [__r1],A
 0105 5202              mov A,[X+2]
 0107 3F00              mvi [__r1],A
 0109                   .dbline 78
 0109           ;         }
 0109           L20:
 0109           L17:
 0109                   .dbline 70
 0109 7700              inc [X+0]
 010B           L19:
 010B                   .dbline 70
 010B 52FA              mov A,[X-6]
 010D 1101              sub A,1
 010F 5300              mov [__r0],A
 0111 5200              mov A,[X+0]
 0113 3A00              cmp A,[__r0]
 0115 A003              jz X2
 0117 CF2C              jc L16
 0119           X2:
 0119                   .dbline 79
 0119           L14:
 0119                   .dbline 79
 0119           ;  } while (changed);
 0119 3D0300            cmp [X+3],0
 011C BF1F              jnz L13
 011E                   .dbline -2
 011E                   .dbline 80
 011E           ; }
 011E           L12:
 011E 38FC              add SP,-4
 0120 20                pop X
 0121                   .dbline 0 ; func end
 0121 7F                ret
 0122                   .dbsym l changed 3 c
 0122                   .dbsym l temp 1 i
 0122                   .dbsym l i 0 c
 0122                   .dbsym l len 0 I
 0122                   .dbsym l len -6 c
 0122                   .dbsym l buffer -5 pi
 0122                   .dbend
 0122                   .dbfunc e Pulse_Instant_Calculate _Pulse_Instant_Calculate fI
 0122           ;  instant_pulse -> X+0
 0122           _Pulse_Instant_Calculate::
 0122                   .dbline -1
 0122 10                push X
 0123 4F                mov X,SP
 0124 3802              add SP,2
 0126                   .dbline 83
 0126           ; 
 0126           ; INT Pulse_Instant_Calculate(void)
 0126           ; {
 0126                   .dbline 84
 0126           ;   INT instant_pulse = GetPulseDelta();  
 0126 7C0000            xcall _GetPulseDelta
 0129 5100              mov A,[__r1]
 012B 5401              mov [X+1],A
 012D 5100              mov A,[__r0]
 012F 5400              mov [X+0],A
 0131                   .dbline 86
 0131           ; 
 0131           ;   if (instant_pulse)
 0131 3D0000            cmp [X+0],0
 0134 B006              jnz X3
 0136 3D0100            cmp [X+1],0
 0139 A0DE              jz L23

⌨️ 快捷键说明

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