#ifndef _PIC_H #define _PIC_H #if defined(_12C508) || defined(_12C509) ||\ defined(_12C508A) || defined(_12C509A) ||\ defined(_12CE518) || defined(_12CE519) ||\ defined(_12C509AG) || defined(_12C509AF) ||\ defined(_12CR509A) || defined(_RF509AG) ||\ defined(_RF509AF) #include #endif #if defined(_16C432) || defined(_16C433) #include #endif #if defined(_16C52) || defined(_16C54) || defined(_16C54A) ||\ defined(_16C54B) || defined(_16C54C) || defined(_16CR54A) ||\ defined(_16CR54B) || defined(_16CR54C) || defined(_16C55) ||\ defined(_16C55A) || defined(_16C56) || defined(_16C56A) ||\ defined(_16CR56A) || defined(_16C57) || defined(_16C57C) ||\ defined(_16CR57B) || defined(_16CR57C) || defined(_16C58A) ||\ defined(_16C58B) || defined(_16CR58A) || defined(_16CR58B) ||\ defined(_16C58) || defined(_16HV540) #include #endif #if defined(_12C671) || defined(_12C672) ||\ defined(_12CE673) || defined(_12CE674) #include #endif #if defined(_12F629) || defined(_12F675) #include #endif #ifdef _16C505 #include #endif #ifdef _14000 #include #endif #if defined(_16C554) || defined(_16C556) || defined(_16C558) ||\ defined(_16C554A) || defined(_16C556A) || defined(_16C558A) #include #endif #ifdef _16C61 #include #endif #if defined(_16C62) || defined(_16C62A) || defined(_16CR62) ||\ defined(_16C62B) #include #endif #if defined(_16C620) || defined(_16C621) || defined(_16C622) ||\ defined(_16C620A) || defined(_16C621A) || defined(_16C622A) ||\ defined(_16CE623) || defined(_16CE624) || defined(_16CE625) #include #endif #if defined(_16C64) || defined(_16C64A) || defined(_16CR64) #include #endif #if defined(_16C641) || defined(_16C642) ||\ defined(_16C661) || defined(_16C662) #include #endif #if defined(_16C65) || defined(_16C65A) || defined(_16CR65) #include #endif #if defined(_16C66) || defined(_16C67) #include #endif #if defined(_16C71) || defined(_16C710) || defined(_16C711) #include #endif #if defined(_16C712) || defined(_16C715) || defined(_16C716) #include #endif #if defined(_16C72) || defined(_16C72A) || defined(_16CR72) #include #endif #if defined(_16C73) || defined(_16C73A) ||\ defined(_16C74) || defined(_16C74A) ||\ defined(_16C63) || defined(_16CR63) || defined(_16C63A) ||\ defined(_16C65B) || defined(_16C73B) || defined(_16C74B) ||\ defined(_16LC74B) #include #endif #if defined(_16C76) || defined(_16C77) #include #endif #if defined(_16C773) || defined(_16C774) || defined(_16C770) ||\ defined(_16C771) || defined(_16C717) || defined(_16C745) ||\ defined(_16C765) #include #endif #if defined(_16C781) || defined(_16C782) #include #endif #if defined(_16F627) || defined(_16F628) #include #endif #if defined(_16F630) || defined(_16F676) #include #endif #if defined(_16F83) || defined(_16CR83) || defined(_16C84) || \ defined(_16F84) || defined(_16F84A) || defined(_16CR84) #include #endif #if defined(_16F873) || defined(_16F874) ||\ defined(_16F876) || defined(_16F877) ||\ defined(_16F873A) || defined(_16F874A) ||\ defined(_16F876A) || defined(_16F877A) ||\ defined(_16F872) || defined(_16F871) ||\ defined(_16F870) #include #endif #if defined(_16F72) ||\ defined(_16F73) || defined(_16F74) ||\ defined(_16F76) || defined(_16F77) #include #endif #if defined(_16F818) || defined(_16F819) #include #endif #if defined(_16C923) || defined(_16C924) ||\ defined(_16C925) || defined(_16C926) #include #endif #if defined(_7C695X) #include #endif #if defined(_16C99) || defined (_16C99C) #include #endif #if defined(_17C42) || defined(_17C42A) || defined(_17CR42) ||\ defined(_17C43) || defined(_17CR43) || defined(_17C44) #include #endif #if defined(_17C752) || defined(_17C756) || defined(_17C756A) ||\ defined(_17C762) || defined(_17C766) #include #endif #define CLRWDT() asm(" clrwdt") #define SLEEP() asm(" sleep") #define ___mkstr1(x) #x #define ___mkstr(x) ___mkstr1(x) #define __CONFIG(x) asm("\tpsect config,class=CONFIG,delta=2");\ asm("\tglobal\tconfig_word"); \ asm("config_word"); \ asm("\tdw "___mkstr(x)) #define __IDLOC(w) asm("\tpsect idloc,class=IDLOC,delta=2");\ asm("\tglobal\tidloc_word"); \ asm("idloc_word"); \ asm("\tirpc\t__arg," ___mkstr(w)); \ asm("\tdw 0&__arg&h"); \ asm("\tendm") #if defined(EEPROM_SIZE) #define __EEPROM_DATA(a, b, c, d, e, f, g, h) \ asm("\tpsect eeprom_data,class=EEDATA,delta=2"); \ asm("\tdb\t" ___mkstr(a) "," ___mkstr(b) "," ___mkstr(c) "," ___mkstr(d) "," \ ___mkstr(e) "," ___mkstr(f) "," ___mkstr(g) "," ___mkstr(h)) #endif // global interrupt enable macros #ifdef _PIC16 #ifndef ei #define ei() (GLINTD = 0) // interrupt disable bit #endif ei #if defined(_17C42) #ifndef di #define di() { do { GLINTD = 1; } while ( GLINTD == 0 ); } // disable interrupt bit #endif di #else #ifndef di #define di() (GLINTD = 1) // interrupt disable bit #endif di #endif #elif defined _PIC14 #ifndef ei #define ei() (GIE = 1) // interrupt enable bit #endif ei #if defined(_14000) || defined(_16C61) || defined(_16C62) ||\ defined(_16C63) || defined(_16C63A) || defined(_16C64) ||\ defined(_16C65) || defined(_16C65B) || defined(_16C71) ||\ defined(_16C73) || defined(_16C73B) || defined(_16C74) ||\ defined(_16C74B) || defined(_16C84) || defined(_16C745) ||\ defined(_16C765) || defined(_16LC74B) #ifndef di #define di() { do { GIE = 0; } while ( GIE == 1 ); } // disable interrupt bit #endif di #else #ifndef di #define di() (GIE = 0) // interrupt enable bit #endif di #endif #endif #endif /* _PIC_H */