📄 swr2.s43
字号:
#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 + -