📄 swr.s43
字号:
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 nop
nop
nop
nop
mov.b &P4IN,R15 ; Low byte of data_I
mov.b &P5IN,R13 ; High byte of data_I
swpb R13
add.w R13,R15
;inv.w R15
;inc.w R15
mov.w R15,&DAC12_0DAT
bis.b #Q_out,&P3OUT
bic.b #Q_out,&P3OUT ; Let data_Q come out
nop
nop
nop
nop
mov.b &P4IN,R15 ; Low byte of data_Q
mov.b &P5IN,R13 ; High byte of data_Q
swpb R13
add.w R13,R15
;inv.w R15
;inc.w R15
mov.w R15,&DAC12_1DAT
clr.b &P1IFG ; Clear interrupt flage
reti
org 8000h
table
DW 0x0000,0x0000,0x0000,0x0000,0x00FF,0xFFFF,0xFFFF,0xFFFF,0xFFFE,0xFFFF,0xFDFF,0xFFFB,0xFFFF,0xF9FF,0xFFF6,0xFFFF,0xF3FF,0xFFEF,0xFFFF,0xEAFF,0xFFE5,0xFFFF,0xDFFF,0xFFD9
DW 0xFFFF,0xD2FF,0xFFCD,0xFFFF,0xC8FF,0xFFC4,0xFFFF,0xC2FF,0xFFC3,0xFFFF,0xC6FF,0xFFCE,0xFFFF,0xD9FF,0xFFE9,0xFFFF,0xFD00,0x0017,0x0000,0x3400,0x0055,0x0000,0x7A00,0x00A0
DW 0x0000,0xC500,0x00EA,0x0001,0x0A00,0x0125,0x0001,0x3800,0x0141,0x0001,0x3D00,0x012D,0x0001,0x0E00,0x00E0,0x0000,0xA400,0x005B,0x0000,0x06FF,0xFFAA,0xFFFF,0x4AFF,0xFEE9
DW 0xFFFE,0x8EFF,0xFE3E,0xFFFD,0xFDFF,0xFDD2,0xFFFD,0xC1FF,0xFDCD,0xFFFD,0xF9FF,0xFE46,0xFFFE,0xB3FF,0xFF3E,0xFFFF,0xE300,0x009A,0x0001,0x5C00,0x0220,0x0002,0xDA00,0x0380
DW 0x0004,0x0600,0x0462,0x0004,0x8B00,0x0479,0x0004,0x2700,0x0395,0x0002,0xC300,0x01B8,0x0000,0x7CFF,0xFF1D,0xFFFD,0xAAFF,0xFC36,0xFFFA,0xD6FF,0xF99E,0xFFF8,0xA4FF,0xF7FB
DW 0xFFF7,0xB4FF,0xF7DB,0xFFF8,0x78FF,0xF98E,0xFFFB,0x18FF,0xFD0A,0xFFFF,0x5300,0x01D9,0x0004,0x8000,0x0724,0x0009,0xA000,0x0BCE,0x000D,0x8700,0x0EA8,0x000F,0x1400,0x0EB3
DW 0x000D,0x7700,0x0B5D,0x0008,0x6D00,0x04BA,0x0000,0x64FF,0xFB98,0xFFF6,0x8CFF,0xF17F,0xFFEC,0xB6FF,0xE87B,0xFFE5,0x17FF,0xE2D2,0xFFE1,0xEEFF,0xE2A1,0xFFE5,0x18FF,0xE970
DW 0xFFEF,0xB3FF,0xF7DB,0x0001,0xCD00,0x0D5C,0x001A,0x4700,0x2840,0x0036,0xE800,0x45D5,0x0054,0x9B00,0x62C4,0x006F,0xE300,0x7B8C,0x0085,0x5E00,0x8D09,0x0092,0x4A00,0x94F6
DW 0x0094,0xF600,0x924A,0x008D,0x0900,0x855E,0x007B,0x8C00,0x6FE3,0x0062,0xC400,0x549B,0x0045,0xD500,0x36E8,0x0028,0x4000,0x1A47,0x000D,0x5C00,0x01CD,0xFFF7,0xDBFF,0xEFB3
DW 0xFFE9,0x70FF,0xE518,0xFFE2,0xA1FF,0xE1EE,0xFFE2,0xD2FF,0xE517,0xFFE8,0x7BFF,0xECB6,0xFFF1,0x7FFF,0xF68C,0xFFFB,0x9800,0x0064,0x0004,0xBA00,0x086D,0x000B,0x5D00,0x0D77
DW 0x000E,0xB300,0x0F14,0x000E,0xA800,0x0D87,0x000B,0xCE00,0x09A0,0x0007,0x2400,0x0480,0x0001,0xD9FF,0xFF53,0xFFFD,0x0AFF,0xFB18,0xFFF9,0x8EFF,0xF878,0xFFF7,0xDBFF,0xF7B4
DW 0xFFF7,0xFBFF,0xF8A4,0xFFF9,0x9EFF,0xFAD6,0xFFFC,0x36FF,0xFDAA,0xFFFF,0x1D00,0x007C,0x0001,0xB800,0x02C3,0x0003,0x9500,0x0427,0x0004,0x7900,0x048B,0x0004,0x6200,0x0406
DW 0x0003,0x8000,0x02DA,0x0002,0x2000,0x015C,0x0000,0x9AFF,0xFFE3,0xFFFF,0x3EFF,0xFEB3,0xFFFE,0x46FF,0xFDF9,0xFFFD,0xCDFF,0xFDC1,0xFFFD,0xD2FF,0xFDFD,0xFFFE,0x3EFF,0xFE8E
DW 0xFFFE,0xE9FF,0xFF4A,0xFFFF,0xAA00,0x0006,0x0000,0x5B00,0x00A4,0x0000,0xE000,0x010E,0x0001,0x2D00,0x013D,0x0001,0x4100,0x0138,0x0001,0x2500,0x010A,0x0000,0xEA00,0x00C5
DW 0x0000,0xA000,0x007A,0x0000,0x5500,0x0034,0x0000,0x17FF,0xFFFD,0xFFFF,0xE9FF,0xFFD9,0xFFFF,0xCEFF,0xFFC6,0xFFFF,0xC3FF,0xFFC2,0xFFFF,0xC4FF,0xFFC8,0xFFFF,0xCDFF,0xFFD2
DW 0xFFFF,0xD9FF,0xFFDF,0xFFFF,0xE5FF,0xFFEA,0xFFFF,0xEFFF,0xFFF3,0xFFFF,0xF6FF,0xFFF9,0xFFFF,0xFBFF,0xFFFD,0xFFFF,0xFEFF,0xFFFF,0xFFFF,0xFF00,0x0000,0x0000,0x0000,0x0000
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-14 Type=ER Enabled=True
; Frequency=30000 Order=2
;[Filter Design] Alpha=0 Decimation=2
;Version=2.5.0 Ripple=.18 Scale=2
; NStopBands=2
;[Device] 50000 [CIC5 Filter]
;Name=AD6620 -120 Enabled=True
; 80000 Order=5
;[AD6620] -140 Decimation=20
;Input Frequency=40000000 Scale=22
;Output Frequency=100000
;Clock Frequency=40000000 [RCF Filter]
;Decimation=400 Enabled=True
;"Overall Setup=RCF=10, CIC5=20, CIC2=2" Decimation=10
; Symmetric=True
; NTaps=256
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -