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

📄 main.h

📁 在51上运行的小的OS系统
💻 H
字号:
#ifndef _MAIN_H
    #define _MAIN_H
    #ifdef MAIN_GLOBAL
        #define MAIN_EXT 
    #else
        #define MAIN_EXT extern
    #endif

void DelayUS(uint32 dly);
void DelayMS(uint32 dly);

#define OS_5MS      1
#define OS_10MS     2
#define OS_20MS     4
#define OS_30MS     6
#define OS_50MS     10
#define OS_100MS    20
#define OS_200MS    40
#define OS_300MS    60
#define OS_400MS    80
#define OS_500MS    100
#define OS_1SEC     200
//#define   OS_1SEC2    240
#define OS_2SEC     400
#define OS_3SEC     600
#define OS_5SEC     1000

#define VT50MS_100MS    2
#define VT50MS_200MS    4
#define VT50MS_1SEC 20
#define VT50MS_2SEC 40
#define VT50MS_6SEC 120
#define VT50MS_10SEC    200
#define VT_KEY_HOLD_START   VT50MS_1SEC
#define VT_KEY_HOLD_REPEAT  VT50MS_200MS

//定义信号量
MAIN_EXT OS_EVENT     *KeySem;

void TaskKeyScan(void *pdata);

#define PIN_KEYIN (1<<Key.ScanCnter)
#define READ_PIN_KEYIN() (IO0PIN&PIN_KEYIN)                //to set a bit
#define PIN_KEYS (0xf<<16)
#define WRITE_SCAN_KEY(keyn)  IO1PIN = (IO0PIN | PIN_KEYS) ^(0x1<<(keyn+16))//keyn:0,1,2,3
#define PIN_KeySet()  
#define LED1_PIN (1<<25)
#define LED2_PIN (1<<26)
#define LED3_PIN (1<<27)
#define LED4_PIN (1<<28)
#define LED5_PIN (1<<24)


#define LED1_on()  (IO0SET = LED1_PIN)
#define LED1_off() (IO0CLR = LED1_PIN)
#define LED2_on()  (IO0SET = LED2_PIN)
#define LED2_off() (IO0CLR = LED2_PIN)
#define LED3_on()  (IO0SET = LED3_PIN)
#define LED3_off() (IO0CLR = LED3_PIN)
#define LED4_on()  (IO0SET = LED4_PIN)
#define LED4_off() (IO0CLR = LED4_PIN)
#define LED5_on()  (IO1SET = LED5_PIN)
#define LED5_off() (IO1CLR = LED5_PIN)

typedef struct{
    uint8 Code;
    uint8 Signal;
    uint8 ScanCnter;
    uint8 KStatus[6];
    uint16  VT;
}KEYSTRUCT;
MAIN_EXT KEYSTRUCT Key;
enum{
    K_IDLE=0,
    K_PRESS_DOWN=3,
    K_PRESS_UP=4,    
    K_PRESS_HOLD=7,
    K_PRESS_REPEAT=7
} ;        //real status for K1Status,K2Status,K3Status,K4Status b2b1b0
enum{
    KEY_NONE,
    KEY_K1_PRESS_DOWN=1,
    KEY_ESC=1,
    KEY_K2_PRESS_DOWN,
    KEY_UP=2,
    KEY_K3_PRESS_DOWN,
    KEY_DOWN=3,
    KEY_K4_PRESS_DOWN,
    KEY_ENTER=4,
    
    KEY_K1_PRESS_UP,
    KEY_K2_PRESS_UP,
    KEY_K3_PRESS_UP,
    KEY_K4_PRESS_UP,
    
    KEY_K1_RPT,
    KEY_K2_RPT,
    KEY_UP_RPT        = KEY_K2_RPT,
    KEY_K3_RPT,
    KEY_DOWN_RPT     = KEY_K3_RPT,
    KEY_K4_HOLD
};

#endif

⌨️ 快捷键说明

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