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

📄 adcinc_1.inc

📁 二轴陀螺仪IDG300源程序
💻 INC
字号:
;;*****************************************************************************
;;*****************************************************************************
;;  FILENAME: ADCINC_1.inc
;;  Version: 1.1, Updated on 2005/09/29 at 13:17:03
;;  Generated by PSoC Designer ver 4.2  b1013 : 02 September, 2004
;;
;;  DESCRIPTION: Assembler declarations for the 8-bit ADCINC A/D Converter
;;               User Module with a 2nd-order modulator.
;;-----------------------------------------------------------------------------
;;  Copyright (c) Cypress MicroSystems 2000-2004. All Rights Reserved.
;;*****************************************************************************
;;*****************************************************************************

include "m8c.inc"
include "memory.inc"

;--------------------------------------------------
; Constants for ADCINC_1 API's.
;--------------------------------------------------

ADCINC_1_OFF:                   equ 00h
ADCINC_1_LOWPOWER:              equ 01h
ADCINC_1_MEDPOWER:              equ 02h
ADCINC_1_HIGHPOWER:             equ 03h

ADCINC_1_bNUMBITS:             equ 0ch
ADCINC_1_SIGNED_DATA:          equ 1
ADCINC_1_9_OR_MORE_BITS:       equ ((0ch - 1)& 08h)
ADCINC_1_8_OR_MORE_BITS:       equ ((0ch )& 08h)


;--------------------------------------------------
; Register Address Constants for ADCINC_1
;--------------------------------------------------
ADCINC_1_ISR_MASK:                     equ 01h
ADCINC_1_ISR_REG:                      equ   0e1h
ADCINC_1_CLR_REG:                      equ (((ADCINC_1_ISR_REG & 038h)/8)^0dfh)


ADCINC_1_PWMdr0:               equ 20h     ; Period reg
ADCINC_1_PWMdr1:               equ 21h     ; Down count reg
ADCINC_1_PWMdr2:               equ 22h     ; Compare reg
ADCINC_1_PWMcr0:               equ 23h     ; Control reg
ADCINC_1_PWMfn:                equ 20h     ; Function reg
ADCINC_1_PWMsl:                equ 21h     ; Input  select reg
ADCINC_1_PWMos:                equ 22h     ; Output select reg

ADCINC_1_AtoD1cr0:             equ 0x84    ; SC Block 1 Control Reg 0
ADCINC_1_AtoD1cr1:             equ 0x85    ; SC Block 1 Control Reg 1
ADCINC_1_AtoD1cr2:             equ 0x86    ; SC Block 1 Control Reg 2
ADCINC_1_AtoD1cr3:             equ 0x87    ; SC Block 1 Control Reg 3
ADCINC_1_AtoD2cr0:             equ 0x94    ; SC Block 2 Control Reg 0
ADCINC_1_AtoD2cr1:             equ 0x95    ; SC Block 2 Control Reg 1
ADCINC_1_AtoD2cr2:             equ 0x96    ; SC Block 2 Control Reg 2
ADCINC_1_AtoD2cr3:             equ 0x97    ; SC Block 2 Control Reg 3

HighByte: equ 0
LowByte:  equ 1

macro ADCINC_1_fIsDataAvailable_M
   RAM_SETPAGE_CUR >ADCINC_1_fStatus
   mov A,[ADCINC_1_fStatus]
endm


macro ADCINC_1_iGetData_M
   RAM_SETPAGE_CUR >ADCINC_1_iResult
   mov X,[(ADCINC_1_iResult + HighByte)]
   mov A,[(ADCINC_1_iResult + LowByte)]
endm


macro ADCINC_1_wGetData_M
   ADCINC_1_iGetData_M
endm


macro ADCINC_1_cGetData_M
   RAM_SETPAGE_CUR >ADCINC_1_iResult
   mov A,[(ADCINC_1_iResult + LowByte)]
endm


macro ADCINC_1_bGetData_M
   ADCINC_1_cGetData_M
endm


macro ADCINC_1_fClearFlag_M
   RAM_SETPAGE_CUR >ADCINC_1_fStatus
   mov A,[ADCINC_1_fStatus]
   mov [ADCINC_1_fStatus],00h
endm


macro ADCINC_1_iClearFlagGetData_M
   RAM_SETPAGE_CUR >ADCINC_1_fStatus
  .repeat:
      mov [ADCINC_1_fStatus],00h
      mov X,[(ADCINC_1_iResult + HighByte)]
      mov A,[(ADCINC_1_iResult + LowByte)]
      cmp [ADCINC_1_fStatus],00h
  .until: jnz .repeat
endm


macro ADCINC_1_wClearFlagGetData_M
   ADCINC_1_iClearFlagGetData_M
endm


macro ADCINC_1_cClearFlagGetData_M
   RAM_SETPAGE_CUR >ADCINC_1_fStatus
   mov [ADCINC_1_fStatus],00h
   mov A,[(ADCINC_1_iResult + LowByte)]
endm


macro ADCINC_1_bClearFlagGetData_M
   ADCINC_1_cClearFlagGetData_M
endm


macro ADCINC_1_ENABLE_INTEGRATOR_M  
   and reg[ADCINC_1_AtoD1cr3],~10h
   and reg[ADCINC_1_AtoD1cr2],~20h
   and reg[ADCINC_1_AtoD2cr3],~10h
   and reg[ADCINC_1_AtoD2cr2],~20h
endm


macro ADCINC_1_RESET_INTEGRATOR_M  
   or  reg[ADCINC_1_AtoD1cr2],20h
   or  reg[ADCINC_1_AtoD1cr3],10h
   or  reg[ADCINC_1_AtoD2cr2],20h
   or  reg[ADCINC_1_AtoD2cr3],10h
endm


macro ADCINC_1_STARTADC_M  
   ;Enable PWM interrupt 
   mov reg[ADCINC_1_CLR_REG],~(ADCINC_1_ISR_MASK)
   or  reg[ADCINC_1_ISR_REG], (ADCINC_1_ISR_MASK)
endm


macro ADCINC_1_STOPADC_M
   ;Disable PWM interrupt  
   and reg[ADCINC_1_ISR_REG],~(ADCINC_1_ISR_MASK)
endm


macro ADCINC_1_WritePulseWidth_M
    mov reg[ADCINC_1_PWMdr2],A
endm

; end of file ADCINC_1.inc

⌨️ 快捷键说明

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