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

📄 main.lis

📁  PSoC(可编程片上系统)是Cypress半导体公司生产的包含有8位微处理器核和数字与模拟混合的信号阵列芯片
💻 LIS
字号:
 0000                   cpu LMM
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile ./main.c
 0000                   .dbfunc e main _main fV
 0000           _main::
 0000                   .dbline -1
 0000                   .dbline 22
 0000           ; //----------------------------------------------------------------------------
 0000           ; // C main line
 0000           ; //----------------------------------------------------------------------------
 0000           ; 
 0000           ; #include <m8c.h>          // part specific constants and macros
 0000           ; #include "PSoCAPI.h"      // PSoC API definitions for all User Modules
 0000           ; 
 0000           ; #include "driverdecl.h"
 0000           ; #include "CMXSystem.h"
 0000           ; #include "CMXSystemExtern.h"
 0000           ; #include "TransferFunction.h"
 0000           ; 
 0000           ; #include "cmx.h"
 0000           ; #include "ProjectProperties.h"
 0000           ; #include "Custom.h"
 0000           ; 
 0000           ; // Channel includes
 0000           ; // CSD_00 Include
 0000           ; #include "CMX_CSD_CHAN.h"
 0000           ; 
 0000           ; void main()
 0000           ; {
 0000                   .dbline 24
 0000           ;     // Initialize Project
 0000           ;     M8C_EnableGInt;                            // Turn on interrupts 
 0000 7101                      or  F, 01h
 0002           
 0002                   .dbline 25
 0002           ;     I2C_CFG &= 0xFC;                           // Disable I2C in case it's not used.
 0002 41D6FC            and REG[0xd6],-4
 0005                   .dbline 26
 0005           ;     SystemTimer_Start();
 0005 10                push X
 0006 7C0000            xcall _SystemTimer_Start
 0009                   .dbline 27
 0009           ;     SystemTimer_SetInterval(SystemTimer_64_HZ);
 0009 5008              mov A,8
 000B 7C0000            xcall _SystemTimer_SetInterval
 000E                   .dbline 28
 000E           ;     SystemTimer_EnableInt();
 000E 7C0000            xcall _SystemTimer_EnableInt
 0011                   .dbline 32
 0011           ; 
 0011           ;     // Initialize Channels
 0011           ;     // CSD_00 Initialization  
 0011           ;       CSD_Start();
 0011 7C0000            xcall _CSD_Start
 0014 20                pop X
 0015                   .dbline 35
 0015           ; 
 0015           ;     // Initialize Variables
 0015           ;       SystemVars.ReadOnlyVars.pse_GREENLED = 0;
 0015 62D000            mov REG[0xd0],>_SystemVars
 0018 550000            mov [_SystemVars],0
 001B                   .dbline 36
 001B           ;       SystemVars.ReadOnlyVars.pse_Proximity_Status = 0;
 001B 550200            mov [_SystemVars+1+1],0
 001E 550100            mov [_SystemVars+1],0
 0021                   .dbline 37
 0021           ;       SystemVars.ReadOnlyVars.pse_REDLED = 0;
 0021 550300            mov [_SystemVars+3],0
 0024                   .dbline 40
 0024           ; 
 0024           ;     // Driver instantiations
 0024           ; CMX_CSDPROPERTY_Instantiate(&pse_CSDProperties);
 0024 5000              mov A,>_pse_CSDProperties
 0026 08                push A
 0027 5000              mov A,<_pse_CSDProperties
 0029 08                push A
 002A 7C0000            xcall _CMX_CSDPROPERTY_Instantiate
 002D                   .dbline 41
 002D           ; CMX_BLINKINGLED_Instantiate(&pse_REDLED);
 002D 5000              mov A,>_pse_REDLED
 002F 08                push A
 0030 5000              mov A,<_pse_REDLED
 0032 08                push A
 0033 7C0000            xcall _CMX_BLINKINGLED_Instantiate
 0036 38FC              add SP,-4
 0038                   .dbline 42
 0038           ; CMX_BLINKINGLED_SetValue(&pse_REDLED, (BYTE)SystemVars.ReadOnlyVars.pse_REDLED);
 0038 62D000            mov REG[0xd0],>_SystemVars
 003B 5103              mov A,[_SystemVars+3]
 003D 08                push A
 003E 5000              mov A,>_pse_REDLED
 0040 08                push A
 0041 5000              mov A,<_pse_REDLED
 0043 08                push A
 0044 7C0000            xcall _CMX_BLINKINGLED_SetValue
 0047                   .dbline 43
 0047           ; CMX_BLINKINGLED_Instantiate(&pse_GREENLED);
 0047 5000              mov A,>_pse_GREENLED
 0049 08                push A
 004A 5000              mov A,<_pse_GREENLED
 004C 08                push A
 004D 7C0000            xcall _CMX_BLINKINGLED_Instantiate
 0050 38FB              add SP,-5
 0052                   .dbline 44
 0052           ; CMX_BLINKINGLED_SetValue(&pse_GREENLED, (BYTE)SystemVars.ReadOnlyVars.pse_GREENLED);
 0052 62D000            mov REG[0xd0],>_SystemVars
 0055 5100              mov A,[_SystemVars]
 0057 08                push A
 0058 5000              mov A,>_pse_GREENLED
 005A 08                push A
 005B 5000              mov A,<_pse_GREENLED
 005D 08                push A
 005E 7C0000            xcall _CMX_BLINKINGLED_SetValue
 0061                   .dbline 45
 0061           ; CMX_CSDPROXIMITY_Instantiate(&pse_Proximity);
 0061 5000              mov A,>_pse_Proximity
 0063 08                push A
 0064 5000              mov A,<_pse_Proximity
 0066 08                push A
 0067 7C0000            xcall _CMX_CSDPROXIMITY_Instantiate
 006A 38FB              add SP,-5
 006C                   .dbline 48
 006C           ; 
 006C           ;     // Custom initization code.
 006C           ;     CustomInit();
 006C 7C0000            xcall _CustomInit
 006F 804E              xjmp L16
 0071           L15:
 0071                   .dbline 52
 0071                   .dbline 55
 0071 10                push X
 0072 5700              mov X,0
 0074 5001              mov A,1
 0076 7C0000            xcall _SystemTimer_SyncWait
 0079 20                pop X
 007A                   .dbline 59
 007A 5000              mov A,>_pse_Proximity
 007C 08                push A
 007D 5000              mov A,<_pse_Proximity
 007F 08                push A
 0080 7C0000            xcall _CMX_CSDPROXIMITY_GetValue
 0083 38FE              add SP,-2
 0085 62D000            mov REG[0xd0],>__r0
 0088 5100              mov A,[__r1]
 008A 08                push A
 008B 5100              mov A,[__r0]
 008D 62D000            mov REG[0xd0],>_SystemVars
 0090 5301              mov [_SystemVars+1],A
 0092 18                pop A
 0093 5302              mov [_SystemVars+1+1],A
 0095                   .dbline 67
 0095 7C0000            xcall _CustomPostInputUpdate
 0098                   .dbline 70
 0098 7C0000            xcall _TransferFunction
 009B                   .dbline 73
 009B 7C0000            xcall _CustomPreOutputUpdate
 009E                   .dbline 76
 009E 62D000            mov REG[0xd0],>_SystemVars
 00A1 5100              mov A,[_SystemVars]
 00A3 08                push A
 00A4 5000              mov A,>_pse_GREENLED
 00A6 08                push A
 00A7 5000              mov A,<_pse_GREENLED
 00A9 08                push A
 00AA 7C0000            xcall _CMX_BLINKINGLED_SetValue
 00AD                   .dbline 77
 00AD 62D000            mov REG[0xd0],>_SystemVars
 00B0 5103              mov A,[_SystemVars+3]
 00B2 08                push A
 00B3 5000              mov A,>_pse_REDLED
 00B5 08                push A
 00B6 5000              mov A,<_pse_REDLED
 00B8 08                push A
 00B9 7C0000            xcall _CMX_BLINKINGLED_SetValue
 00BC 38FA              add SP,-6
 00BE                   .dbline 79
 00BE           L16:
 00BE                   .dbline 51
 00BE 8FB2              xjmp L15
 00C0           X0:
 00C0                   .dbline -2
 00C0                   .dbline 80
 00C0           ;     // End Initialize Project
 00C0           ; 
 00C0           ;       while(1)
 00C0           ;       {
 00C0           ;         // Sync loop sample rate
 00C0           ; #if ( SAMPLE_DIVIDER  )
 00C0           ;         SystemTimer_SyncWait(SAMPLE_DIVIDER, SystemTimer_WAIT_RELOAD);
 00C0           ; #endif
 00C0           ; 
 00C0           ;               // update input variables
 00C0           ;               SystemVars.ReadOnlyVars.pse_Proximity_Status = CMX_CSDPROXIMITY_GetValue(&pse_Proximity);
 00C0           ; #if 0
 00C0           ;               SystemVars.ReadOnlyVars.pse_Proximity_Baseline = CMX_CSDPROXIMITY_GetBaseline(&pse_Proximity);
 00C0           ;               SystemVars.ReadOnlyVars.pse_Proximity_RawCount = CMX_CSDPROXIMITY_GetRawCount(&pse_Proximity);
 00C0           ;               SystemVars.ReadOnlyVars.pse_Proximity_Difference = CMX_CSDPROXIMITY_GetDifference(&pse_Proximity);
 00C0           ; #endif
 00C0           ; 
 00C0           ;         // Custom Post Input function
 00C0           ;         CustomPostInputUpdate();
 00C0           ; 
 00C0           ;               // run transfer function and update output variables
 00C0           ;               TransferFunction();
 00C0           ; 
 00C0           ;         // CustomPreOutputUpdate();
 00C0           ;         CustomPreOutputUpdate();
 00C0           ; 
 00C0           ;               // set outputs
 00C0           ;               CMX_BLINKINGLED_SetValue(&pse_GREENLED, (BYTE)SystemVars.ReadOnlyVars.pse_GREENLED);
 00C0           ;               CMX_BLINKINGLED_SetValue(&pse_REDLED, (BYTE)SystemVars.ReadOnlyVars.pse_REDLED);
 00C0           ; 
 00C0           ;       }
 00C0           ; }
 00C0           L11:
 00C0                   .dbline 0 ; func end
 00C0 8FFF              jmp .
 00C2                   .dbend

⌨️ 快捷键说明

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