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

📄 macros.inc

📁 AVR053 校正内部RC振荡器
💻 INC
字号:
;*****************************************************************
;*
;* - Description:  Source file from application note AVR001. 
;*                 Defines a number of macros that makes it easier
;*                 to access IO registers (and SRAM locations). 
;*
;* - File:         macros.inc
;* - AppNote:      AVR053 - Production calibration of the
;*                          RC oscillator
;*
;* - Author:       Atmel Corporation: http://www.atmel.com
;*                 Support email: avr@atmel.com
;*
;* $Name: AVR053_RELEASE_1_1 $
;* $Revision: 1.2 $
;* $RCSfile: macros.inc,v $
;* $Date: 2006/02/16 16:44:45 $
;*****************************************************************


;*********************************************************
;*	BIT access anywhere in IO or data space
;*	SETB - SET Bit in IO of data space
;*	CLRB - CLeaR Bit in IO of data space
;*********************************************************

.MACRO SETB 		;Arguments: Address, Bit, Register
	.if @1>7
		.error "Only values 0-7 allowed for Bit parameter"
	.endif
	.if	@0>0x3F
		lds	@2, @0
		sbr	@2, (1<<@1)
		sts	@0, @2
	.else
		.if @0>0x1F
			in	@2, @0
			sbr	@2, (1<<@1)
			out	@0, @2
		.else
			sbi	@0, @1
		.endif
	.endif
.ENDMACRO

.MACRO CLRB 		;Arguments: Address, Bit, Register
	.if @1>7
		.error "Only values 0-7 allowed for Bit parameter"
	.endif
	.if	@0>0x3F
		lds	@2, @0
		cbr	@2, (1<<@1)
		sts	@0, @2
	.else
		.if @0>0x1F
			in	@2, @0
			cbr	@2, (1<<@1)
			out	@0, @2
		.else
			cbi	@0, @1
		.endif
	.endif
.ENDMACRO

;*********************************************************
;*	Bit test anywhere in IO or data space
;*  SKBS : SKip if Bit Set
;*  SKBC : SKip if Bit Cleared
;*********************************************************
.MACRO SKBS  		;Arguments: Address, Bit, Register
	.if @1>7
		.error "Only values 0-7 allowed for Bit parameter"
	.endif
	.if	@0>0x3F
		lds		@2, @0
		sbrs	@2, @1
	.else
		.if @0>0x1F
			in		@2, @0
			sbrs	@2, @1
		.else
			sbis	@0, @1
		.endif
	.endif
.ENDMACRO

.MACRO SKBC  		;Arguments: Address, Bit, Register
	.if @1>7
		.error "Only values 0-7 allowed for Bit parameter"
	.endif
	.if	@0>0x3F
		lds		@2, @0
		sbrc	@2, @1
	.else
		.if @0>0x1F
			in		@2, @0
			sbrc	@2, @1
		.else
			sbic	@0, @1
		.endif
	.endif
.ENDMACRO

;*********************************************************
;*	Byte access anywhere in IO or data space
;* 	STORE - Store register in IO or data space
;* 	LOAD  - Load register from IO or data space
;*********************************************************

.MACRO STORE 		;Arguments: Address, Register
	.if	@0>0x3F
		sts	@0, @1
	.else
		out	@0, @1
	.endif
.ENDMACRO

.MACRO LOAD 		;Arguments: Register, Address
	.if	@1>0x3F
		lds	@0, @1
	.else
		in	@0, @1
	.endif
.ENDMACRO

⌨️ 快捷键说明

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