?? mylib.h
字號:
#include "ioavr.h"
#ifndef MYLIB_H
#define MYLIB_H
#define SYSCLK_4M 0
#define SYSCLK_8M 1
/****端口操作定義**************************************************************/
#define PORTIN 0 /*輸入口為0*/
#define PORTOUT 1 /*輸出口為1*/
#define KEYUP 0
#define KEYDN 1
/********* PORTA **************************************************************/
#ifdef PA0
#define CLR_PORTA(n) CLRMSK(PORTA,n)
#define SET_PORTA(n) SETMSK(PORTA,n)
#define SET_PAIN(n) CLRMSK(DDRA,n)
#define SET_PAOUT(n) SETMSK(DDRA,n)
#define GET_PINA(n) TESTMSK(PINA,n)
#endif
/********* PORTB **************************************************************/
#ifdef PB0
#define CLR_PORTB(n) CLRMSK(PORTB,n)
#define SET_PORTB(n) SETMSK(PORTB,n)
#define SET_PBIN(n) CLRMSK(DDRB,n)
#define SET_PBOUT(n) SETMSK(DDRB,n)
#define GET_PINB(n) TESTMSK(PINB,n)
#endif
/********* PORTC **************************************************************/
#ifdef PC0
#define CLR_PORTC(n) CLRMSK(PORTC,n)
#define SET_PORTC(n) SETMSK(PORTC,n)
#define SET_PCIN(n) CLRMSK(DDRC,n)
#define SET_PCOUT(n) SETMSK(DDRC,n)
#define GET_PINC(n) TESTMSK(PINC,n)
#endif
/********* PORTD **************************************************************/
#ifdef PD0
#define CLR_PORTD(n) CLRMSK(PORTD,n)
#define SET_PORTD(n) SETMSK(PORTD,n)
#define SET_PDIN(n) CLRMSK(DDRD,n)
#define SET_PDOUT(n) SETMSK(DDRD,n)
#define GET_PIND(n) TESTMSK(PIND,n)
#endif
/***********通用定義***********************************************************/
typedef unsigned char uint8; /* Unsigned 8 bit value */
typedef unsigned short uint16; /* Unsigned 16 bit value */
typedef unsigned long int uint32; /* Unsigned 32 bit value */
typedef signed char int8; /* Signed 8 bit value */
typedef signed short int16; /* Signed 16 bit value */
typedef signed long int int32; /* Signed 32 bit value */
#ifndef BIT
#define BIT(x) (1 << (x))
#endif
/* Set BIT in ADDRESS */
#define SETMSK(ADDRESS,n) ((ADDRESS) |= BIT(n))
/* Clear BIT in ADDRESS */
#define CLRMSK(ADDRESS,n) ((ADDRESS) &= ~BIT(n))
/* Test BIT in ADDRESS */
#define TESTMSK(ADDRESS,n) ((ADDRESS) & BIT(n))
/*******全局中斷操作***********************************************************/
#define cli() __disable_interrupt()
#define sei() __enable_interrupt()
/******************************************************************************/
/******************************************************************************/
#define SWAP(data) (data = __swap_nibbles(data))
/******************************************************************************/
#define Delaync(val) \
{\
val = OclDat - 50;\
if(val != OSCCAL)\
{\
LED_ALL_OPEN();\
delaynms(4);\
LED_ALL_CLOSE();\
while(1)clrwdt();\
}\
}
/*******看門狗定義*************************************************************/
#define wdt_enable(wdttime) (WDTCSR= BIT(WDCE)|BIT(WDE),WDTCSR=((wdttime)|BIT(WDE)))
#define wdt_disable() WDTCSR=0
#define clrwdt() __watchdog_reset()
#define WDTO_30MS BIT(WDP0)
#define WDTO_60MS BIT(WDP1)
#define WDTO_120MS (BIT(WDP0)|BIT(WDP1))
#define WDTO_250MS BIT(WDP2)
#define WDTO_500MS (BIT(WDP2)|BIT(WDP0))
#define WDTO_1S (BIT(WDP2)|BIT(WDP1))
#define WDTO_2S (BIT(WDP2)|BIT(WDP1)|BIT(WDP0))
#define WDTO_4S BIT(WDP3)
#define WDTO_8S (BIT(WDP3)|BIT(WDP0))
/************ADC通道定義*******************************************************/
#ifdef ADC0D
#define AD_SE_ADC0 0x00 //ADC0
#define AD_SE_ADC1 0x01 //ADC1
#define AD_SE_ADC2 0x02 //ADC2
#define AD_SE_ADC3 0x03 //ADC3
#define AD_SE_ADC4 0x04 //ADC4
#define AD_SE_ADC5 0x05 //ADC5
#define AD_SE_ADC6 0x06 //ADC6
#define AD_SE_ADC7 0x07 //ADC7
#endif
/***********LED顯示段碼定義****************************************************/
#ifndef LED_CODE
#define LED_CODE
#define Led_0 0x3F
#define Led_1 0x06
#define Led_2 0x5B
#define Led_3 0x4F
#define Led_4 0x66
#define Led_5 0x6D
#define Led_6 0x7D
#define Led_7 0x07
#define Led_8 0x7E
#define Led_9 0x6F
#define Led_A 0x77
#define Led_b 0x7C
#define Led_C 0x39
#define Led_c 0x58
#define Led_d 0x5E
#define Led_E 0x79
#define Led_F 0x71
#define Led_H 0x76
#define Led_h 0x74
#define Led_L 0x38
#define Led_n 0x54
#define Led_N 0x37
#define Led_O 0x3f
#define Led_o 0x5C
#define Led_P 0x73
#define Led_r 0x50
#define Led_t 0x78
#define Led_U 0x3E
#define Led_G 0x7D
#define Led_S 0x6D
#define Led_y 0x6e
#define Led_HEN 0x40 //"-"
#define Led_SPC 0x00 //空
#endif
/******************************************************************************/
#endif /*end of #ifndef MYLIB_H*/
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -