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

📄 ina90.h

📁 Example the project test UART for AVR161 on C for IAR
💻 H
字号:
/*			 - ina90.h -

   Intrinsic functions for ICCA90
	   
   Version: 1.05 [IANP]

*/

#ifndef __INA90_INCLUDED
#define __INA90_INCLUDED

#if (((__TID__ >> 8) & 0x7F) != 90)
#error This file should only be compiled by icca90
#endif

#if __TID__ & 0x8000
#pragma function=intrinsic(0)
#endif

void _SEI(void);
void _CLI(void);
void _NOP(void);
void _SLEEP(void);

unsigned char _LPM(unsigned short val);

#if (((__TID__ >> 4) & 0x0F) >= 2)
unsigned char _ELPM(unsigned long val);
#endif

void _WDR(void);

void _OPC(unsigned short op);

/* Compatibility macros: */
#ifndef disable_interrupt
#define disable_interrupt()	_CLI()
#endif

#ifndef __disable_interrupt
#define __disable_interrupt()	_CLI()
#endif

#ifndef enable_interrupt
#define enable_interrupt()	_SEI()
#endif

#ifndef __enable_interrupt
#define __enable_interrupt()	_SEI()
#endif

#ifndef __no_operation
#define __no_operation()	_NOP()
#endif

#ifndef __sleep
#define __sleep()	_SLEEP()
#endif

#ifndef __load_program_memory
#define __load_program_memory(SHORT)	_LPM(SHORT)
#endif

#if (((__TID__ >> 4) & 0x0F) >= 2)
#ifndef __extended_load_program_memory
#define __extended_load_program_memory(LONG)	_ELPM(LONG)
#endif
#endif

#ifndef __watchdog_reset
#define __watchdog_reset()	_WDR()
#endif

#if __TID__ & 0x8000
#pragma function=default
#endif

/* Include a file appropriate for the processor used, 
 * that defines EECR, EEAR and EEDR (e.g. io2312.h). */

#define _EEPUT(ADR,VAL)	{while (EECR & 0x02); \
 EEAR = (ADR); EEDR = (VAL); EECR = 0x04; EECR = 0x02;}

#define _EEGET(VAR, ADR) {while (EECR & 0x02); \
        EEAR = (ADR); EECR = 0x01; (VAR) = EEDR;}

/* PORT is a sfrb defined variable */

#define input(PORT) (PORT)
#define output(PORT,VAL) ((PORT)=(VAL))

#define input_block_dec(PORT,ADDRESS,COUNT)\
{ \
  unsigned char i;\
  unsigned char *addr=(ADDRESS);\
  for(i=0;i<(COUNT);i++)\
    *addr--=(PORT);\
}

#define input_block_inc(PORT,ADDRESS,COUNT)\
{ \
  unsigned char i;\
  unsigned char *addr=(ADDRESS);\
  for(i=0;i<(COUNT);i++)\
    *addr++=(PORT);\
}

#define output_block_dec(PORT,ADDRESS,COUNT)\
{ \
  unsigned char i;\
  unsigned char *addr=(ADDRESS);\
  for(i=0;i<(COUNT);i++)\
    (PORT)=*addr--;\
}

#define output_block_inc(PORT,ADDRESS,COUNT)\
{ \
  unsigned char i;\
  unsigned char *addr=(ADDRESS);\
  for(i=0;i<(COUNT);i++)\
    (PORT)=*addr++;\
}

#endif /* __INA90_INCLUDED */

⌨️ 快捷键说明

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