bascom的:
config portb.0 = output
dds_fqud alias portb.0
config portd.4 = output
dds_data alias portd.4
config portd.5 = output
dds_clock alias portd.5
config portd.3 = output
dds_reset alias portd.3
declare sub sendddstuningword(ddstuningword as long)
declare sub reset_ad9951
declare sub config_ad9951
call reset_ad9951
call config_ad9951
ddstuningword = 10737418
call sendddstuningword(ddstuningword)
sub reset_ad9951
set dds_reset
waitms 50
reset dds_reset
end sub
sub config_ad9951
ddsregaddress = &b00000000
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
nop
nop
ddsregaddress = &b00000010
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
nop
nop
ddsregaddress = &b00000000
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
nop
nop
ddsregaddress = &b00000000
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
nop
nop
ddsregaddress = &b00000000
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
ddsregaddress = &b00000001
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
nop
nop
ddsregaddress = &b00000000
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
nop
nop
ddsregaddress = &b00000000
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
nop
nop
ddsregaddress = &b00101100
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
ddsregaddress = &b00000010
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
nop
nop
ddsa = &b0011111111111111
shiftout dds_data , dds_clock , ddsa , 1 , 16
set dds_fqud
nop
nop
nop
nop
nop
nop
nop
nop
reset dds_fqud
end sub
sub sendddstuningword(ddstuningword as long)
ddsregaddress = &b0000100
shiftout dds_data , dds_clock , ddsregaddress , 1 , 8
shiftout dds_data , dds_clock , ddstuningword , 1 , 32
set dds_fqud
nop
nop
nop
nop
nop
nop
nop
nop
reset dds_fqud
end sub