📄 swr3.s43
字号:
mov.b #00h,data
WRTS 0,data
;;;;;;;;;;; Ntaps-1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov.b #3,data ; Data 255=>Location 30ch
WRTS 7,data
mov.b #0ch,data ;
WRTS 6,data
mov.b #255,data ; NTaps=256
WRTS 0,data
;;;;;;;;;;; Reserved byte ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov.b #3,data ; Data 0h=>Location 30dh
WRTS 7,data
mov.b #0dh,data ;
WRTS 6,data
mov.b #0h,data
WRTS 0,data
;;;;;;;;;;; Configuration Register programmed ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov.b #3,data ; Data 08h=>Location 300h
WRTS 7,data ; Write AMR
clr.b data
WRTS 6,data ; Write LAR
mov.b #8,data ;
WRTS 0,data ;
LLL jmp LLL
DDS bis.b #0Ah,&P3SEL ; P3.1,3 SPI option select
bis.b #0Ah,&P3DIR ; P3.1,3 output direction
bis.b #040h,&ME1 ; Enable USART0 SPI
bis.b #CKPH+CKPL+SSEL1+SSEL0+STC,&UTCTL0 ;* SMCLK, 3-pin mode
bis.b #CHAR+SYNC+MM,&UCTL0 ; 8-bit SPI Master **SWRST**
mov.b #02h,&UBR00 ; SMCLK/2 for baud rate
clr.b &UBR10 ;
clr.b &UMCTL0 ; Clear modulation
bic.b #SWRST,&UCTL0 ; **Initialize USART state machine**
;;;;;
SetupDDS clr.b data_lo
mov.b #21h,data_hi ; Pin/sw=0,RESET=1
call #DDSWRTS ; Controll words sent
mov.b #70h,data_hi ; 0111 0000 1010 0100
mov.b #0A4h,data_lo
call #DDSWRTS
mov.b #40h,data_hi ; 0100 0000 1111 0101
mov.b #0F5h,data_lo ;
call #DDSWRTS ; FREQ0 of 600KHz (3D70A4H)
mov.b #0A6h,data_hi ; 1010 0110 0110 0110
mov.b #66h,data_lo
call #DDSWRTS
mov.b #81h,data_hi ; 1000 0001 1001 1001
mov.b #99h,data_lo ;
call #DDSWRTS ; FREQ1 of 1000KHz (666666H)
clr.b data_lo
mov.b #0c0h,data_hi
call #DDSWRTS
clr.b data_lo
mov.b #0e0h,data_hi
call #DDSWRTS
clr.b data_lo
mov.b #20h,data_hi ; Pin/sw=0,RESET=0
call #DDSWRTS ; Controll words sent
ret
DDSWRTS bic.b #DDS_CS,P1OUT
w1 bit.b #UTXIFG0,&IFG1
jz w1
mov.b data_hi,&TXBUF0
w2 bit.b #UTXIFG0,&IFG1
jz w2
mov.b data_lo,&TXBUF0
mov.b #0x0a,R15
w3 dec.b R15
jnz w3
bis.b #DDS_CS,P1OUT
ret
RAM_LOAD mov.b #80h,data
WRTS 7,data ;Write AMR increment
clr.b data
WRTS 6,data ;Write LAR
mov #table,R5
clr.b R7
loop1 mov.b @R5+,R8
WRTS 2,R8
mov.b @R5+,R8
WRTS 1,R8
mov.b @R5+,R8
WRTS 0,R8
dec.b R7
jnz loop1
ret
data_coming mov.b &P4IN,R15 ; Low byte of data_I
mov.b &P5IN,R13 ; High byte of data_I
swpb R13
add.w R13,R15
mov.w R15,&DAC12_0DAT
bis.b #Q_out,&P3OUT
bic.b #Q_out,&P3OUT ; Let data_Q come out
mov.b &P4IN,R15 ; Low byte of data_Q
mov.b &P5IN,R13 ; High byte of data_Q
swpb R13
add.w R13,R15
mov.w R15,&DAC12_1DAT
clr.b &P1IFG ; Clear interrupt flage
reti
org 8000h
table
DW 0xFFFF,0xFE00,0x0000,0xFFFF,0xFEFF,0xFFFF,0xFFFF,0xFEFF,0xFFFE,0xFFFF,0xFDFF,0xFFFD,0xFFFF,0xFCFF,0xFFFC,0xFFFF,0xFBFF,0xFFFA,0xFFFF,0xF9FF,0xFFF8,0xFFFF,0xF7FF,0xFFF6
DW 0xFFFF,0xF4FF,0xFFF3,0xFFFF,0xF1FF,0xFFF0,0xFFFF,0xEEFF,0xFFEC,0xFFFF,0xEAFF,0xFFE8,0xFFFF,0xE6FF,0xFFE3,0xFFFF,0xE1FF,0xFFDF,0xFFFF,0xDDFF,0xFFDA,0xFFFF,0xD8FF,0xFFD6
DW 0xFFFF,0xD4FF,0xFFD3,0xFFFF,0xD2FF,0xFFD0,0xFFFF,0xD0FF,0xFFD0,0xFFFF,0xD0FF,0xFFD1,0xFFFF,0xD2FF,0xFFD5,0xFFFF,0xD8FF,0xFFDC,0xFFFF,0xE1FF,0xFFE8,0xFFFF,0xEFFF,0xFFF9
DW 0x0000,0x0300,0x000F,0x0000,0x1D00,0x002D,0x0000,0x3F00,0x0053,0x0000,0x6A00,0x0082,0x0000,0x9E00,0x00BC,0x0000,0xDD00,0x0101,0x0001,0x2800,0x0152,0x0001,0x7F00,0x01B0
DW 0x0001,0xE500,0x021D,0x0002,0x5900,0x0299,0x0002,0xDD00,0x0325,0x0003,0x7100,0x03C1,0x0004,0x1600,0x046E,0x0004,0xCB00,0x052C,0x0005,0x9100,0x05FA,0x0006,0x6800,0x06D9
DW 0x0007,0x4F00,0x07C8,0x0008,0x4500,0x08C6,0x0009,0x4B00,0x09D2,0x000A,0x5D00,0x0AEB,0x000B,0x7B00,0x0C0E,0x000C,0xA300,0x0D3B,0x000D,0xD400,0x0E6E,0x000F,0x0A00,0x0FA6
DW 0x0010,0x4300,0x10E0,0x0011,0x7D00,0x1219,0x0012,0xB500,0x134F,0x0013,0xE800,0x147E,0x0015,0x1200,0x15A4,0x0016,0x3200,0x16BD,0x0017,0x4400,0x17C7,0x0018,0x4500,0x18BF
DW 0x0019,0x3300,0x19A2,0x001A,0x0A00,0x1A6D,0x001A,0xC900,0x1B1E,0x001B,0x6D00,0x1BB4,0x001B,0xF400,0x1C2C,0x001C,0x5D00,0x1C86,0x001C,0xA600,0x1CBF,0x001C,0xD000,0x1CD8
DW 0x001C,0xD800,0x1CD0,0x001C,0xBF00,0x1CA6,0x001C,0x8600,0x1C5D,0x001C,0x2C00,0x1BF4,0x001B,0xB400,0x1B6D,0x001B,0x1E00,0x1AC9,0x001A,0x6D00,0x1A0A,0x0019,0xA200,0x1933
DW 0x0018,0xBF00,0x1845,0x0017,0xC700,0x1744,0x0016,0xBD00,0x1632,0x0015,0xA400,0x1512,0x0014,0x7E00,0x13E8,0x0013,0x4F00,0x12B5,0x0012,0x1900,0x117D,0x0010,0xE000,0x1043
DW 0x000F,0xA600,0x0F0A,0x000E,0x6E00,0x0DD4,0x000D,0x3B00,0x0CA3,0x000C,0x0E00,0x0B7B,0x000A,0xEB00,0x0A5D,0x0009,0xD200,0x094B,0x0008,0xC600,0x0845,0x0007,0xC800,0x074F
DW 0x0006,0xD900,0x0668,0x0005,0xFA00,0x0591,0x0005,0x2C00,0x04CB,0x0004,0x6E00,0x0416,0x0003,0xC100,0x0371,0x0003,0x2500,0x02DD,0x0002,0x9900,0x0259,0x0002,0x1D00,0x01E5
DW 0x0001,0xB000,0x017F,0x0001,0x5200,0x0128,0x0001,0x0100,0x00DD,0x0000,0xBC00,0x009E,0x0000,0x8200,0x006A,0x0000,0x5300,0x003F,0x0000,0x2D00,0x001D,0x0000,0x0F00,0x0003
DW 0xFFFF,0xF9FF,0xFFEF,0xFFFF,0xE8FF,0xFFE1,0xFFFF,0xDCFF,0xFFD8,0xFFFF,0xD5FF,0xFFD2,0xFFFF,0xD1FF,0xFFD0,0xFFFF,0xD0FF,0xFFD0,0xFFFF,0xD0FF,0xFFD2,0xFFFF,0xD3FF,0xFFD4
DW 0xFFFF,0xD6FF,0xFFD8,0xFFFF,0xDAFF,0xFFDD,0xFFFF,0xDFFF,0xFFE1,0xFFFF,0xE3FF,0xFFE6,0xFFFF,0xE8FF,0xFFEA,0xFFFF,0xECFF,0xFFEE,0xFFFF,0xF0FF,0xFFF1,0xFFFF,0xF3FF,0xFFF4
DW 0xFFFF,0xF6FF,0xFFF7,0xFFFF,0xF8FF,0xFFF9,0xFFFF,0xFAFF,0xFFFB,0xFFFF,0xFCFF,0xFFFC,0xFFFF,0xFDFF,0xFFFD,0xFFFF,0xFEFF,0xFFFE,0xFFFF,0xFFFF,0xFFFE,0x0000,0x00FF,0xFFFE
ORG 0FFFEh ; MSP430 RESET Vector
DW RESET ;
ORG 0FFE8h ; P1.0 Int Vector
DW data_coming
;# Name: AD6620 [Ideal Response] [CIC2 Filter]
;# Date: 2005-10-08 Type=ER Enabled=True
; Frequency=5000 Order=2
;[Filter Design] Alpha=0 Decimation=2
;Version=2.5.0 Ripple=.18 Scale=2
; NStopBands=2
;[Device] 15000 [CIC5 Filter]
;Name=AD6620 -120 Enabled=True
; 20000 Order=5
;[AD6620] -140 Decimation=25
;Input Frequency=40000000 Scale=24
;Output Frequency=100000
;Clock Frequency=40000000 [RCF Filter]
;Decimation=400 Enabled=True
;"Overall Setup=RCF=8, CIC5=25, CIC2=2" Decimation=8
; Symmetric=True
; NTaps=256
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -