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

📄 main.dbg

📁 飞思卡尔 新型的单片机rs08的ADC调试程序
💻 DBG
📖 第 1 页 / 共 3 页
字号:
mPTASE_PTASE4:      equ    %00010000
mPTASE_PTASE5:      equ    %00100000


;*** NV_ICSTRM - Nonvolatile ICS Trim Register; 0x00003FFA ***
NV_ICSTRM:          equ    $00003FFA                                ;*** NV_ICSTRM - Nonvolatile ICS Trim Register; 0x00003FFA ***
; bit numbers for usage in BCLR, BSET, BRCLR and BRSET
NV_ICSTRM_TRIM:     equ    0                                         ; ICS Trim Setting
; bit position masks
mNV_ICSTRM_TRIM:    equ    %11111111


;*** NV_FTRIM - Nonvolatile ICS Fine Trim Register; 0x00003FFB ***
NV_FTRIM:           equ    $00003FFB                                ;*** NV_FTRIM - Nonvolatile ICS Fine Trim Register; 0x00003FFB ***
; bit numbers for usage in BCLR, BSET, BRCLR and BRSET
NV_FTRIM_FTRIM:     equ    0                                         ; ICS Fine Trim
; bit position masks
mNV_FTRIM_FTRIM:    equ    %00000001


;*** NVOPT - FLASH Options Register; 0x00003FFC ***
NVOPT:              equ    $00003FFC                                ;*** NVOPT - FLASH Options Register; 0x00003FFC ***
; bit numbers for usage in BCLR, BSET, BRCLR and BRSET
NVOPT_SECD:         equ    0                                         ; Security State Code
; bit position masks
mNVOPT_SECD:        equ    %00000001


;***********************************************
;**   D E P R E C I A T E D   S Y M B O L S   **
;***********************************************
        XREF    This_symb_has_been_depreciated

; EOF


; RAM/ROM definitions


; Watchdog feed macro
feed_watchdog: MACRO
            MOV    #HIGH_6_13(SRS),PAGESEL
            STA    MAP_ADDR_6(SRS)  ; feed the watchdog
          ENDM

; export symbols
            XDEF _Startup
            ABSENTRY _Startup

Table_Data EQU $3E00
         
; Variable declarations
ACMP_ENABLE      SET   $92
ACMP_DISABLED    SET   $20
MTIM_INIT        SET   $50
MTIM_ENABLE      SET   $40
MTIM_STOP_RESET  SET   $30
MTIM_128_DIV     SET   $07
FREE_RUN         SET   $00
DEBUG_MODE       SET   $00
RUN_MODE         SET   $01

MODE:            EQU    DEBUG_MODE                																              

; variable/data section
    ORG    RAMStart                   

ConvertedValue: DS.B   1                 ; This varible store converted value
SensorReading   DS.B   1                 ; store ACMP read value
pcBuffer:       DS.B   2                 ; temporal backup SPC
Temp_Page       DS.B   1                 ; Temporal backup Page 

; code section
     ORG    ROMStart
 
;**************************************************************
;*                      MACRO DEFINITIONS                     *
;**************************************************************
ENTRY_SUB: MACRO			                  ;Macro for "stacking" SPC
	    sha
	    sta pcBuffer + 2*(\1)
	    sha
	    sla
	    sta pcBuffer + 2*(\1) +1
	    sla
      ENDM
      
      NOP                               ;needs to separate MACROS

EXIT_SUB: MACRO				                  ;Macro for restore SPC
	    sha
	    lda pcBuffer + 2*(\1)
	    sha
	    sla
	    lda pcBuffer + 2*(\1) +1
	    sla
      ENDM

;**************************************************************
;*                    CONFIGURES SYSTEM CONTROL               *
;**************************************************************
Init_mc: 
      clr  ICSC1                        ; FLL is selected as Bus Clock
      mov  #$98,ICSTRM                  ; Store TRIM value into ICSTRM register
      clr  ICSC2
      mov  #$4,ICSSC
      IFNE  MODE
      ELSE 
        mov #HIGH_6_13(SOPT), PAGESEL  
        mov #$03, MAP_ADDR_6(SOPT)      ; Disables COP, enables BKGD (PTA3) and RESET (PTA2) pins                                  
      ENDIF
      rts

;**************************************************************
;*          Analog Comparator Initial Configuration           *
;**************************************************************
ACMP_Conf: 
      MOV #ACMP_ENABLE,ACMPSC           ; ACMP Enabled, ACMP+ pin active, Interrupt enabled, Rising edges detections
      rts

;**************************************************************
;*            Modulus Timer Configuration for ADC             *
;**************************************************************
 MTIM_ADC_Init:
      mov #MTIM_128_DIV,MTIMCLK         ; Select bus clock as reference, Set prescaler with 64
      mov #FREE_RUN,MTIMMOD             ; Configure Timer as free running
      mov #MTIM_STOP_RESET,MTIMSC
      rts

;**************************************************************
;*                   Discharge Capacitor                      *
;**************************************************************
Discharge_Cap: 
      bset  1,PTADD                     ; Configure PTA1 as Output
      bclr  1,PTAD                      ; Start Capacitor discharging
      lda   #$FE                        ; Set delay time
waste_time:   
      dbnza waste_time                  ; wait until Delay = 0
      rts

;**************************************************************
;*                         MAIN                               *
;**************************************************************
_Startup:
      bsr Init_mc
      bsr MTIM_ADC_Init                 ; Configure MITM
      bsr Discharge_Cap                 ; Discharge Capacitor            
      bsr ACMP_Conf                     ; Configure ACMP+ and ACMP-
      mov #MTIM_ENABLE,MTIMSC           ; Timer Counter Enabled
mainLoop:
      wait                              ; Wait for ACMP interrupt
      bset 1,MTIMSC
      lda MTIMCNT                         
      sta SensorReading                  ; store counter value
      mov #HIGH_6_13(SIP1), PAGESEL     
      brset 3, MAP_ADDR_6(SIP1),ReadVal ; branch if ACMP interrupt arrives
      bra mainLoop        

;**************************************************************
;*                 Read Value from ACMP                       *
;**************************************************************
ReadVal:
      mov #MTIM_STOP_RESET,MTIMSC       ; Stop and reset counter
      mov #ACMP_DISABLED, ACMPSC        ; ACMP Disabled, Clear Interrupt flag
      ENTRY_SUB 0                       
	    sha
	    sta pcBuffer + 2*(0)
	    sha
	    sla
	    sta pcBuffer + 2*(0) +1
	    sla
      jsr LookupTable 			                  ; Search on table
  	  EXIT_SUB  0
	    sha
	    lda pcBuffer + 2*(0)
	    sha
	    sla
	    lda pcBuffer + 2*(0) +1
	    sla
      rts         
;**************************************************************
;*                 Table Search                               *
;**************************************************************
LookupTable:    
      lda SensorReading 
      rola                              ; Getting 2 MSB
      rola 
      rola 
      and #$03                                                  
      add #(Table_Data>>6)              ; Page Calculating
      mov #PAGESEL,Temp_Page            ; Backup actual page
      sta PAGESEL                       ; Page Change
      lda SensorReading                    
      and #$3F                          ; Extract 6 LSB
      add #$C0                          ; Index to paging window
      tax                                 
      lda ,x                            ; Load table result 
      sta ConvertedValue                ; Store result
      mov #Temp_Page, PAGESEL           ; Back Page
      rts 
;**************************************************************
;*                 Startup Vector                             *
;**************************************************************
      ORG   $3FFD
      JMP _Startup                      ; Reset

;**************************************************************
;*                    Data Table                              *
;**************************************************************         
 ORG Table_Data 
 dc.b 0,4,8,12,16,20,23,27,30,34,38,41,44,48,51,54
 dc.b 57,60,64,67,70,72,75,78,81,84,86,89,92,94,97,99
 dc.b 102,104,107,109,111,113,116,118,120,122,124,126,128,130,132,134
 dc.b 136,138,140,142,143,145,147,149,150,152,153,155,157,158,160,161
 dc.b 163,164,166,167,168,170,171,172,174,175,176,177,179,180,181,182
 dc.b 183,184,185,187,188,189,190,191,192,193,194,195,196,197,197,198
 dc.b 199,200,201,202,203,203,204,205,206,207,207,208,209,209,210,211
 dc.b 212,212,213,214,214,215,215,216,217,217,218,218,219,219,220,221
 dc.b 221,222,222,223,223,224,224,225,225,225,226,226,227,227,228,228
 dc.b 228,229,229,230,230,230,231,231,232,232,232,233,233,233,234,234
 dc.b 234,235,235,235,235,236,236,236,237,237,237,237,238,238,238,238
 dc.b 239,239,239,239,240,240,240,240,240,241,241,241,241,242,242,242
 dc.b 242,242,242,243,243,243,243,243,243,244,244,244,244,244,244,245
 dc.b 245,245,245,245,245,245,246,246,246,246,246,246,246,246,247,247
 dc.b 247,247,247,247,247,247,247,248,248,248,248,248,248,248,248,248
 dc.b 248,248,249,249,249,249,249,249,249,249,249,249,249,249,249,250

⌨️ 快捷键说明

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