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

📄 cxvendor.h

📁 外部接传感器完成数据采集
💻 H
字号:
/* for KEIL 8051 "C" tools */

#ifdef CMXMODULE
/* #include <reg51.h> */
#endif
#define PROCESSOR 8051

#define PROC_DISABLE_INT K_OS_Disable_Interrupts()
#define PROC_ENABLE_INT K_OS_Enable_Interrupts()

#define PROC_SAVE_INT K_OS_Save_Interrupts()
#define PROC_RESTORE_INT K_OS_Restore_Interrupts()
typedef void (code *CMX_FP)(); 

/* load in tasks STACK address. */
/* adjust stack memory block. */

#define CXTCRE_SPECIFIC() {tcbptr->stk_save = stack_blk; stack_blk += stack_size / 2; tcbptr->stk_start = stack_blk - 1;} 

#ifdef CMX_INIT_MODULE 

byte data locked_out;		/* disable task switching */
byte data pipe_bytes_left;	/* bytes free in CMX interrupt pipe */ 
byte data in_ctr;				/* position within interrupt pipe to place bytes */
byte data out_ctr;			/* position within interrupt pipe to remove bytes */
byte data cmx_flag1;			/* contains flags, for CMX internal use */
byte data pipe_slots_avail;	/* pipe slots free. */
byte data ie_holder;

#else

extern byte data locked_out;	
extern byte data in_ctr;
extern byte data out_ctr;
extern byte data cmx_flag1;
extern byte data ie_holder;

#endif

#ifdef CMXTRACKER
extern byte xdata CMXTRACKER_ON;
#endif


#define preempted 0x01		/* preempted flag */
#define do_timer_tsk 0x02	/* do timer task flag */
#define do_time_slice 0x04	/* do time slice, next task to slice */
#define slice_enable	0x08	/* time slicing enabled */
#define do_coop_sched 0x10	/* do a cooperative schedule, to NEXT task that can run */
#define do_int_pipe 0x20	/* process interrupt pipe */
#define idle_flag 0x40		/* helps determines power down mode */
#define cmx_active 0x80		/* identifies that CMX RTOS entered */


#define PREEMPTED cmx_flag1 |= preempted
#define TEST_NOT_PREEMPTED !(cmx_flag1 & preempted)
#define DO_TIMER_TSK cmx_flag1 |= do_timer_tsk
#define DO_TIME_SLICE cmx_flag1 |= do_time_slice
#define TEST_SLICE_ENABLE	cmx_flag1 & slice_enable
#define SLICE_DISABLE	cmx_flag1 &= ~slice_enable
#define SLICE_ENABLE	cmx_flag1 |= slice_enable
#define DO_COOP_SCHED cmx_flag1 |= do_coop_sched
#define DO_INT_PIPE cmx_flag1 |= do_int_pipe
#define CLR_DO_INT_PIPE cmx_flag1 &= ~do_int_pipe
#define TEST_CMX_ACTIVE cmx_flag1 & cmx_active
#define CMX_ACTIVE cmx_flag1 |= cmx_active

⌨️ 快捷键说明

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