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

📄 defines.h

📁 c语言源玛,扫描的游戏代码,攻大家看.多体意见
💻 H
字号:

#ifndef _defines_H_
#define _defines_H_

#ifdef __ICCAVR__
#include <iom8.h>
#include <string.h>
#endif

#ifdef WIN32
#include <string.h>
#define __eeprom
#endif
//AVR_GCC
//#include <avr/io.h>


#ifndef USHORT
#define USHORT unsigned short
#endif
#ifndef UCHAR
#define UCHAR unsigned char
#endif
#ifndef NULL
#define NULL 0
#endif


/*#define memset(dest, data, size)\
{\
    for(UCHAR i = 0; i < size; i++){\
        ((UCHAR*)dest)[i] = data;\
    }\
}
#define memcpy(dest, sour, size)\
{\
    for(UCHAR i = 0; i < size; i++){\
        ((UCHAR*)dest)[i] = ((UCHAR*)sour)[i];\
    }\
}*/

//是否需要农历
#define SUPPORT_LUNAR               1
#if SUPPORT_LUNAR
//农历最大支持到哪一年
#define LAST_LUNAT_YEAR          2030
//是否支持节气
#define SUPPORT_LUNAR_HOLIDAY       0
#endif

#define KEY_DOWN    2
#define KEY_UP      1
#define KEY_LEFT    4
#define KEY_RIGHT   8
#define KEY_YES     16
#define KEY_ADD     KEY_DOWN
#define KEY_DEC     KEY_UP
#define KEY_PREV    KEY_UP
#define KEY_NEXT    KEY_DOWN

//最多支持5个闹钟
#define ALARM_MAX   5

//标志位定义
#define F_TIME          1
#define F_DATE          2
#define F_ALARM         4

#define F_SUN           1
#define F_MON           2
#define F_TUE           4
#define F_WED           8
#define F_THU           16
#define F_FRI           32
#define F_SAT           64
#define F_ANYDAY        127
#define F_WORKINGDAY    62
#define F_WEEKEND       65

//改变接线时, 只需要重新定义LEDBUFF就可以了, 不需要改核心代码
struct LEDBUFF{
    union{//led1-1
        UCHAR mon1;
        struct{
            UCHAR pad1   :7;
            UCHAR f_time :1;
        };
    };
    union{//led1-2
        UCHAR mon2;
        struct{
            UCHAR pad2   :7;
            UCHAR f_date :1;
        };
    };
    union{//led2-1
        UCHAR day1;
        struct{
            UCHAR pad3    :7;
            UCHAR f_alarm :1;
        };
        UCHAR lunHolidayWait1;
    };
    union{//led2-2
        UCHAR day2;
        /*struct{
            UCHAR pad4    :7;
            UCHAR pad     :1;
        };*/
        UCHAR lunHolidayWait2;
    };
    union{//led3-1
        struct{
            union{
                UCHAR hourring :7;
                UCHAR weeksel  :7;
            };
        };
    };
    union{//led3-2
        UCHAR week;
        UCHAR alarmIndex;
    };
    union{//led4-1
        UCHAR hour1;
        UCHAR lunMon1;
        UCHAR year1;
    };
    union{//led4-2
        struct{
            UCHAR dotpad   :7;
            UCHAR dot      :1;
        };
        UCHAR hour2;
        UCHAR lunMon2;
        UCHAR year2;
    };
    union{//led5-1
        UCHAR min1;
        UCHAR lunDay1;
        UCHAR year3;
    };
    union{//led5-2
        UCHAR min2;
        UCHAR lunDay2;
        UCHAR year4;
    };
    union{//led6-1
        UCHAR sec1;
        UCHAR ring1;
        UCHAR lunarholiday1;
    };
    union{//led6-2
        UCHAR sec2;
        UCHAR ring2;
        UCHAR lunarholiday2;
    };
};

struct ALARMBUFF{
    UCHAR enable;
    UCHAR hour;
    UCHAR min;
    UCHAR ring;
    UCHAR week;
};

extern const UCHAR DataLed[16];
extern LEDBUFF led;

// eeprom 变量定义
extern __eeprom UCHAR no_use;      //开始的第一个字节不用
extern __eeprom UCHAR alarm_pos;   //当为0x5a时,启用第一组地址, 否则使用第二组地址
extern __eeprom UCHAR hourring1;
extern __eeprom ALARMBUFF alarm1[ALARM_MAX];
extern __eeprom UCHAR hourring2;
extern __eeprom ALARMBUFF alarm2[ALARM_MAX];
#if SUPPORT_LUNAR
extern __eeprom const USHORT gLunarMonthDays[LAST_LUNAT_YEAR-1998];
extern __eeprom const UCHAR gLunarMonth[(LAST_LUNAT_YEAR-1998)/2];
extern __eeprom const UCHAR gLunarHoliday[12*(LAST_LUNAT_YEAR-1999)];
#endif
#define ALARMBUFF1_ADDR         sizeof(UCHAR) + sizeof(UCHAR)
#define ALARMBUFF2_ADDR         ALARMBUFF1_ADDR + sizeof(UCHAR) + sizeof(alarm1)
#define LUNARMONTHDAYS_ADDR     ALARMBUFF2_ADDR + sizeof(UCHAR) + sizeof(alarm2)
#define LUNARMONTH_ADDR         LUNARMONTHDAYS_ADDR + sizeof(gLunarMonthDays)
#define LUNARHOLIDAY_ADDR       LUNARMONTH_ADDR + sizeof(gLunarMonth)
//#define LUNARMONTH_ADDR         LUNARMONTHDAYS_ADDR
//#define LUNARHOLIDAY_ADDR       LUNARMONTH_ADDR

#endif //define _defines_H_

⌨️ 快捷键说明

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