📄 load_meas.h
字号:
#define LM_INIT_SWX 1 /* XGATE SW interrupt linked to lm_init */
#define LM_NO_OF_CHANNELS 4 /* number of measurement channels (function calls with parameter 0..#-1)*/
#define LM_MEAS_PERIOD 7 /* the load is measured over (2^LM_MEAS_PERIOD)*65536 bus cycles, change lm_timebase to long unsigned int if value >15 is used */
#define LM_USE_ECT /* use ECT for timekeeping */
//#define LM_USE_PIT /* use PIT for timekeeping */
//#define LM_USE_MDC /* use modulus down counter of ECT */
#define LM_USE_PIT_T 0 /* PIT channel to use */
#define LM_USE_PIT_MT 0 /* PIT microtimer to use */
#define LM_INIT() XGATE.xgswt.word = ((1<<LM_INIT_SWX)<<8)|(1<<LM_INIT_SWX); /* generate SW trigger - lm_init */
/* user friendly definition of XGATE channel number */
#if defined(LM_USE_ECT)
#define LM_XGATE_VECTOR 0x6F
#elif defined(LM_USE_PIT)
#define LM_XGATE_VECTOR (0x3D-LM_USE_PIT_T)
#elif defined(LM_USE_MDC)
#define LM_XGATE_VECTOR 0x65
#endif
/* assembly definitions of calls to LM_START and LM_STOP for more accurate measurements */
#define LM_START(n) asm LDL R2,n; /* load channel number into R2 */\
asm LDL R6,%XGATE_8(lm_start); /* load lower byte of address */\
asm ORH R6,%XGATE_8_H(lm_start); /* load upper byte of address */\
asm JAL R6 /* call the routine */
#define LM_STOP(n) asm LDL R2,n; /* load channel number into R2 */\
asm LDL R6,%XGATE_8(lm_stop); /* load lower byte of address */\
asm ORH R6,%XGATE_8_H(lm_stop); /* load upper byte of address */\
asm JAL R6 /* call the routine */
#pragma CODE_SEG XGATE_CODE
void lm_start(unsigned char channel); /* do not use this function, use the LM_START(n) macro instead */
void lm_stop(unsigned char channel); /* do not use this function, use the LM_STOP(n) macro instead */
void interrupt lm_init(void);
void interrupt lm_timekeeping(void);
#pragma CODE_SEG DEFAULT
#pragma DATA_SEG __RPAGE_SEG XGATE_DATA
extern unsigned int lm_load[LM_NO_OF_CHANNELS]; /* 0=0%, 65536=100% */
extern unsigned int lm_peak_runtime[LM_NO_OF_CHANNELS]; /* peak execution time in bus cycles */
extern unsigned int lm_average_runtime[LM_NO_OF_CHANNELS]; /* average execution time in bus cycles */
extern unsigned int lm_execution_count_hold[LM_NO_OF_CHANNELS];
#pragma DATA_SEG DEFAULT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -