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

📄 sigproc.lis

📁 测量脉搏的源码 Cypress公司使用 CY27443 完成相关的功能
💻 LIS
📖 第 1 页 / 共 3 页
字号:
                        .module sigproc.c
                        .area data(ram, con, rel)
 0000           _adc_max_prev:
 0000                   .blkb 2
                        .area idata
 0000 0000              .word 0
                        .area data(ram, con, rel)
 0002                   .dbfile ./sigproc.c
 0002                   .dbsym s adc_max_prev _adc_max_prev I
 0002           _peak_delta:
 0002                   .blkb 2
                        .area idata
 0002 0000              .word 0
                        .area data(ram, con, rel)
 0004                   .dbfile ./sigproc.c
 0004                   .dbsym s peak_delta _peak_delta i
                        .area lit(rom, con, rel)
 0000           _gain_table:
 0000 0102              .byte 1,2
 0002 0304              .byte 3,4
 0004 0508              .byte 5,8
 0006 0C10              .byte 12,16
 0008                   .dbsym s gain_table _gain_table A[8:8]c
                        .area data(ram, con, rel)
 0004                   .dbfile ./sigproc.c
 0004           _gain_level:
 0004                   .blkb 1
                        .area idata
 0004 00                .byte 0
                        .area data(ram, con, rel)
 0005                   .dbfile ./sigproc.c
 0005                   .dbsym s gain_level _gain_level c
 0005           L3:
 0005                   .blkb 2
                        .area idata
 0005 0000              .word 0
                        .area data(ram, con, rel)
 0007                   .dbfile ./sigproc.c
 0007           L4:
 0007                   .blkb 2
                        .area idata
 0007 0000              .word 0
                        .area data(ram, con, rel)
 0009                   .dbfile ./sigproc.c
 0009           L5:
 0009                   .blkb 1
                        .area idata
 0009 00                .byte 0
                        .area data(ram, con, rel)
 000A                   .dbfile ./sigproc.c
                        .area bss(ram, con, rel)
 0000                   .dbfile ./sigproc.c
 0000           L6:
 0000                   .blkb 2
 0002           L7:
 0002                   .blkb 2
                        .area data(ram, con, rel)
 000A                   .dbfile ./sigproc.c
 000A           L8:
 000A                   .blkb 1
                        .area idata
 000A 00                .byte 0
                        .area data(ram, con, rel)
 000B                   .dbfile ./sigproc.c
 000B           L9:
 000B                   .blkb 2
                        .area idata
 000B 012C              .word 300
                        .area data(ram, con, rel)
 000D                   .dbfile ./sigproc.c
 000D           L10:
 000D                   .blkb 2
                        .area idata
 000D 0000              .word 0
                        .area data(ram, con, rel)
 000F                   .dbfile ./sigproc.c
 000F           L11:
 000F                   .blkb 2
                        .area idata
 000F 0000              .word 0
                        .area data(ram, con, rel)
 0011                   .dbfile ./sigproc.c
 0011           L12:
 0011                   .blkb 2
                        .area idata
 0011 0000              .word 0
                        .area data(ram, con, rel)
 0013                   .dbfile ./sigproc.c
 0013           L13:
 0013                   .blkb 2
                        .area idata
 0013 0000              .word 0
                        .area data(ram, con, rel)
 0015                   .dbfile ./sigproc.c
                        .area bss(ram, con, rel)
 0004                   .dbfile ./sigproc.c
 0004           L14:
 0004                   .blkb 2
                        .area text(rom, con, rel)
 0000                   .dbfile ./sigproc.c
 0000                   .dbfunc e adc_sig_proc _adc_sig_proc fV
 0000                   .dbsym s peak_ind_old L14 i
 0000                   .dbsym s peak_ind L13 i
 0000                   .dbsym s int_cnt L12 i
 0000                   .dbsym s peak_max L11 I
 0000                   .dbsym s adc_max L10 I
 0000                   .dbsym s th L9 I
 0000                   .dbsym s ran_cnt L8 c
 0000                   .dbsym s temp L7 I
 0000                   .dbsym s hpf_data L6 I
 0000                   .dbsym s loop L5 c
 0000                   .dbsym s lpf2 L4 I
 0000                   .dbsym s lpf1 L3 I
 0000           _adc_sig_proc::
 0000                   .dbline -1
 0000 08                push A
 0001 5100              mov A,[__r0]
 0003 08                push A
 0004 5100              mov A,[__r1]
 0006 08                push A
 0007 5100              mov A,[__r2]
 0009 08                push A
 000A 5100              mov A,[__r3]
 000C 08                push A
 000D 5100              mov A,[__rX]
 000F 08                push A
 0010 5100              mov A,[__rY]
 0012 08                push A
 0013 5100              mov A,[__rZ]
 0015 08                push A
 0016 10                push X
 0017 4F                mov X,SP
 0018 3802              add SP,2
 001A                   .dbline 38
 001A           ; 
 001A           ; #include "PSoCApi.h"
 001A           ; #include <m8c.h>
 001A           ; #include "globdefs.h"
 001A           ; #include "utils.h"
 001A           ; 
 001A           ; #define TH_DELTA 200
 001A           ; 
 001A           ; #define LPF_SHIFT 2
 001A           ; 
 001A           ; extern INT ADC_iResult;
 001A           ; 
 001A           ; #define HPF_BUFFER_LEN 7
 001A           ; static INT hpf_buffer[HPF_BUFFER_LEN];
 001A           ; 
 001A           ; static INT adc_max_prev = 0;
 001A           ; static PULSE_INTERVAL_TYPE peak_delta = 0; 
 001A           ; 
 001A           ; #define RANGE_POINTS 200
 001A           ; #define TH_MIN 300
 001A           ; #define TH_MAX 1500
 001A           ; #define TH_FILTER_SHIFT 1
 001A           ; 
 001A           ; #define AGC_DOWN_THESHOLD 10000
 001A           ; #define AGC_UP_THESHOLD  4000
 001A           ; #define GAIN_LEVELS 8
 001A           ; #define AGC_GAIN_HIGH 6
 001A           ; #define AGC_GAIN_LOW 0  
 001A           ; static const BYTE gain_table[GAIN_LEVELS] = {1, 2, 3, 4, 5, 8, 12, 16};
 001A           ; static BYTE gain_level = 0;
 001A           ; 
 001A           ; #if DEBUG
 001A           ; static INT debug = 0;
 001A           ; #endif
 001A           ; 
 001A           ; #pragma interrupt_handler adc_sig_proc;
 001A           ; void adc_sig_proc(void)
 001A           ; {
 001A                   .dbline 51
 001A           ;   static INT lpf1 = 0, lpf2 = 0;
 001A           ;   static BYTE loop = 0;
 001A           ;   static INT hpf_data;
 001A           ;   static INT temp;
 001A           ;   
 001A           ;   static BYTE ran_cnt = 0;
 001A           ;   static INT th = TH_MIN, adc_max = 0;
 001A           ;   
 001A           ;   static INT peak_max = 0;
 001A           ;   static PULSE_INTERVAL_TYPE int_cnt = 0, peak_ind = 0, peak_ind_old;
 001A           ;   
 001A           ;           
 001A           ;   lpf1 -= (lpf1 >> LPF_SHIFT) - (ADC_iResult - ADC_SHIFT);
 001A 5F0006            mov [__r1],[L3+1]
 001D 5F0005            mov [__r0],[L3]
 0020 6800              asr [__r0]
 0022 6E00              rrc [__r1]
 0024 6800              asr [__r0]
 0026 6E00              rrc [__r1]
 0028 5101              mov A,[_ADC_iResult+1]
 002A 11C4              sub A,-60
 002C 5300              mov [__r3],A
 002E 5100              mov A,[_ADC_iResult]
 0030 1909              sbb A,9
 0032 5300              mov [__r2],A
 0034 5100              mov A,[__r3]
 0036 1400              sub [__r1],A
 0038 5100              mov A,[__r2]
 003A 1C00              sbb [__r0],A
 003C 5100              mov A,[__r1]
 003E 1406              sub [L3+1],A
 0040 5100              mov A,[__r0]
 0042 1C05              sbb [L3],A
 0044                   .dbline 52
 0044           ;   lpf2 += (lpf1 >> 1) - (lpf2 >> LPF_SHIFT);
 0044 5F0006            mov [__r1],[L3+1]
 0047 5F0005            mov [__r0],[L3]
 004A 6800              asr [__r0]
 004C 6E00              rrc [__r1]
 004E 5F0008            mov [__r3],[L4+1]
 0051 5F0007            mov [__r2],[L4]
 0054 6800              asr [__r2]
 0056 6E00              rrc [__r3]
 0058 6800              asr [__r2]
 005A 6E00              rrc [__r3]
 005C 5100              mov A,[__r3]
 005E 1400              sub [__r1],A
 0060 5100              mov A,[__r2]
 0062 1C00              sbb [__r0],A
 0064 5100              mov A,[__r1]
 0066 0408              add [L4+1],A
 0068 5100              mov A,[__r0]
 006A 0C07              adc [L4],A
 006C                   .dbline 54
 006C           ;   
 006C           ;   M8C_EnableGInt; 
 006C 7101                      or  F, 01h
 006E           
 006E                   .dbline 56
 006E           ;   
 006E           ;   if ((lpf2 > AGC_DOWN_THESHOLD) && (gain_level > AGC_GAIN_LOW)) 
 006E 5107              mov A,[L4]
 0070 3180              xor A,-128
 0072 5300              mov [__rY],A
 0074 5027              mov A,39
 0076 3180              xor A,-128
 0078 5300              mov [__rZ],A
 007A 550000            mov [__rX],0
 007D 5108              mov A,[L4+1]
 007F 1110              sub A,16
 0081 2C00              or [__rX],A
 0083 5100              mov A,[__rY]
 0085 1A00              sbb A,[__rZ]
 0087 2C00              or [__rX],A
 0089 C036              jc L15
 008B 5100              mov A,[__rX]
 008D A032              jz L15
 008F           X0:
 008F 3C0400            cmp [_gain_level],0
 0092 C02D              jc L15
 0094 A02B              jz L15
 0096           X1:
 0096                   .dbline 57
 0096           ;     In_BPF_FILT_C1_REG = (In_BPF_FILT_C1_REG & 0xE0) | gain_table[--gain_level]; 
 0096 5104              mov A,[_gain_level]
 0098 1101              sub A,1
 009A 5300              mov [__r0],A
 009C 5304              mov [_gain_level],A
 009E 5D80              mov A,REG[-128]
 00A0 5300              mov [__r2],A
 00A2 2600E0            and [__r2],-32
 00A5 5F0000            mov [__r1],[__r0]
 00A8 550000            mov [__r0],0
 00AB 060000            add [__r1],<_gain_table
 00AE 0E0000            adc [__r0],>_gain_table
 00B1 5100              mov A,[__r0]
 00B3 10                push X
 00B4 5800              mov X,[__r1]
 00B6 28                romx
 00B7 20                pop X
 00B8 5300              mov [__r0],A
 00BA 5100              mov A,[__r2]
 00BC 2A00              or A,[__r0]
 00BE 6080              mov REG[-128],A
 00C0           L15:
 00C0                   .dbline 59
 00C0           ;     
 00C0           ;   if ((lpf2 < AGC_UP_THESHOLD) && (gain_level < AGC_GAIN_HIGH))
 00C0 5107              mov A,[L4]
 00C2 3180              xor A,-128
 00C4 5300              mov [__rY],A
 00C6 500F              mov A,15
 00C8 3180              xor A,-128
 00CA 5300              mov [__rZ],A
 00CC 550000            mov [__rX],0
 00CF 5108              mov A,[L4+1]
 00D1 11A0              sub A,-96
 00D3 2C00              or [__rX],A
 00D5 5100              mov A,[__rY]
 00D7 1A00              sbb A,[__rZ]
 00D9 2C00              or [__rX],A
 00DB D034              jnc L17
 00DD 5100              mov A,[__rX]
 00DF A030              jz L17
 00E1           X2:
 00E1 3C0406            cmp [_gain_level],6
 00E4 D02B              jnc L17

⌨️ 快捷键说明

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