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

📄 swr2.s43

📁 CYPRESS SL811相关资料
💻 S43
📖 第 1 页 / 共 2 页
字号:
#include  "msp430x16x.h"

#define     data_pt    R15
#define     data_hi    R14
#define     data_lo    R13
#define     data       R12
data_ready  equ     01h                     ; P1.0,data ready and generate interrupt
Q_out       equ     10h                     ; Q data access,P3.4
WR          equ     20h                     ; P3.5 /WR
RD          equ     40h                     ; P3.6 /RD
CS          equ     80h                     ; P3.7 /CS
RST         equ     80h                     ; P1.7 /RST
DDS_CS      equ     20h                     ; P1.5

WRTS        MACRO   addr,data
            bic.b   #07h,&P6OUT
            bis.b   #addr,&P6OUT            ; address sent to P2
            mov.b   data,&P2OUT             ; Data sent to P3
            bic.b   #CS+WR,&P3OUT
            bis.b   #CS+WR,&P3OUT           ; End of write
            ENDM

            ORG     4000h
RESET       mov.w   #0A00h,SP               ; Initialize 'x1x9 stackpointer
StopWDT     mov.w   #WDTPW+WDTHOLD,&WDTCTL  ; Stop WDT
SetupP1     bis.b   #0feh,&P1DIR            ; P1  output,P1.0 as input
            bis.b   #0ffh,&P2DIR            ; P2  output
            bis.b   #0ffh,&P3DIR            ; P3  output
            clr.b   &P4DIR
            clr.b   &P5DIR
            bis.b   #0ffh,&P6DIR
            bis.b   #0ffh,&P2OUT

            mov.w   #REFON,&ADC12CTL0       ; Internal 2.5V ref on.

            bic.b   #XT2OFF,&BCSCTL1        ; Turn on XT2CLK
            bic.b   #OSCOFF,SR              ; Turn on LFXT1
SetupOsc    bic.b   #OFIFG,&IFG1            ; Clear OSC fault flag
            mov.w   #0FFh,R15               ; R15 = Delay
SetupOsc1   dec.w   R15                     ; Additional delay to ensure start
            jnz     SetupOsc1               ;
            bit.b   #OFIFG,&IFG1            ; OSC fault flag set?
            jnz     SetupOsc                ; OSC Fault, clear flag again
            bic.b   #OFIFG,&IFG1            ; Clear oscillator fault again
            bis.b   #(SELM1+SELS),&BCSCTL2  ; Select now XT2 clock
            bis.b   #data_ready,&P1IES      ; P1.0 falling edge
            bis.b   #data_ready,&P1IE       ; P1.0 interrupt enable
            clr.b   &P1IFG                  ; Clear interrupt flage
            eint                            ; Global interrupt enable

            mov.w   #DAC12LSEL_1+DAC12AMP_5+DAC12ENC+DAC12DF,&DAC12_0CTL
            mov.w   #DAC12LSEL_1+DAC12AMP_5+DAC12ENC+DAC12DF,&DAC12_1CTL

            call    #DDS

            ;mov     #200h,data_pt
            bic.b   #RST,&P1OUT
            bis.b   #RST,&P1OUT             ; Reset action
            ;mov.b   #CS+WR,&P3OUT           ; disable /CS,/WR,/RD

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            call    #RAM_LOAD               ; Load with RAM coefficients

;;;;;;;;;;; Mode Control Register programmed ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            ;mov.b   #3,data                 ; Data 09h=>Location 300h
            ;WRTS    7,data                  ; Write AMR
            ;clr.b   data
            ;WRTS    6,data                  ; Write LAR
            ;mov.b   #1,data                 ; Sync Master
            ;WRTS    0,data                  ; Write data 09h to location 300h hold soft_reset
;;;;;;;;;;; NCO Control Register Programmed ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            mov.b   #3,data                 ; Data 00h=>Location 301h
            WRTS    7,data                  ; Write AMR
            mov.b   #01h,data
            WRTS    6,data                  ; Write LAR
            mov.b   #0,data
            WRTS    0,data                  ; NCO active,Dither inactive
;;;;;;;;;;; NCO SYNC Control Register Programmed  ;;;;;;;;;;;;;;;;;;;;;;;
            mov.b   #3,data                 ; Data 0ffffffffh=>Location 302h
            WRTS    7,data                  ; Write AMR
            mov.b   #2,data                 ;
            WRTS    6,data                  ; Write LAR
            mov.b   #00h,data
            WRTS    3,data                  ;
            WRTS    2,data                  ;
            WRTS    1,data                  ;
            mov.b   #0ffh,data
            WRTS    0,data                  ;
;;;;;;;;;;; NCO_FREQ   Programmed  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            mov.b   #3,data                 ; Data 03d70a3dh=>Location 303h
            WRTS    7,data                  ; 2^32*(600KHz/40000KHz)
            mov.b   #3,data                 ;
            WRTS    6,data                  ; Write LAR
            mov.b   #03,data
            WRTS    3,data
            mov.b   #0d7h,data
            WRTS    2,data
            mov.b   #0ah,data
            WRTS    1,data
            mov.b   #3dh,data
            WRTS    0,data
;;;;;;;;;;; NCO Phase_offset ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            mov.b   #3,data                 ; Data 00h=>Location 304h
            WRTS    7,data
            mov.b   #4,data                 ;
            WRTS    6,data
            clr.b   data
            WRTS    1,data
            WRTS    0,data
;;;;;;;;;;; INPUT/CIC2 Scale Register ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            mov.b   #3,data                 ; Data 05h=>Location 305h
            WRTS    7,data
            mov.b   #5,data                 ;
            WRTS    6,data
            mov.b   #05h,data               ; Scale=5
            WRTS    0,data                  ; ExpOff=0,ExpInv=0
;;;;;;;;;;; MCIC2-1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            mov.b   #3,data                 ; Data 04h=>Location 306h
            WRTS    7,data                  ; [CIC2 Filter]
            mov.b   #6,data                 ; Order=2
            WRTS    6,data                  ; Decimation=5
            mov.b   #04h,data
            WRTS    0,data                  ; MCIC2-1=4
;;;;;;;;;;; CIC5 Scale Register ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            mov.b   #3,data                 ; Data 24=>Location 307h
            WRTS    7,data
            mov.b   #7,data                 ;
            WRTS    6,data
            mov.b   #25,data                ; Scale=25
            WRTS    0,data
;;;;;;;;;;; MCIC5-1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            mov.b   #3,data                 ; Data 24=>Location 308h
            WRTS    7,data                  ; [CIC5 Filter]
            mov.b   #8,data                 ; Order=5
            WRTS    6,data                  ; Decimation=32
            mov.b   #31,data
            WRTS    0,data                  ; MCIC5-1=31
;;;;;;;;;;; OUTPUT/RCF Control Register ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            mov.b   #3,data                 ; Data 04h=>Location 309h
            WRTS    7,data                  ; [RCF Filter]
            mov.b   #9,data
            WRTS    6,data                  ; Symmetric=True
            mov.b   #04h,data
            WRTS    0,data                  ; RCF Scale factor=4
;;;;;;;;;;; MRCF-1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
            mov.b   #3,data                 ; Data 31h=>Location 30ah
            WRTS    7,data
            mov.b   #0ah,data               ;
            WRTS    6,data

⌨️ 快捷键说明

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