forked from M-Labs/artiq
dds: make it easier to specify phase
This commit is contained in:
parent
dd2c1d1b72
commit
e6a4c2fb36
|
@ -3,7 +3,7 @@ from artiq.language.db import *
|
||||||
from artiq.language.units import *
|
from artiq.language.units import *
|
||||||
|
|
||||||
|
|
||||||
PHASE_MODE_DEFAULT = -1
|
_PHASE_MODE_DEFAULT = -1
|
||||||
# keep in sync with dds.h
|
# keep in sync with dds.h
|
||||||
PHASE_MODE_CONTINUOUS = 0
|
PHASE_MODE_CONTINUOUS = 0
|
||||||
PHASE_MODE_ABSOLUTE = 1
|
PHASE_MODE_ABSOLUTE = 1
|
||||||
|
@ -104,17 +104,17 @@ class DDS(AutoDB):
|
||||||
self.phase_mode = phase_mode
|
self.phase_mode = phase_mode
|
||||||
|
|
||||||
@kernel
|
@kernel
|
||||||
def set(self, frequency, phase_mode=PHASE_MODE_DEFAULT, phase_offset=0):
|
def set(self, frequency, phase=0, phase_mode=_PHASE_MODE_DEFAULT):
|
||||||
"""Sets the DDS channel to the specified frequency and phase.
|
"""Sets the DDS channel to the specified frequency and phase.
|
||||||
|
|
||||||
:param frequency: frequency to generate.
|
:param frequency: frequency to generate.
|
||||||
|
:param phase: adds an offset, in turns, to the phase.
|
||||||
:param phase_mode: if specified, overrides the default phase mode set
|
:param phase_mode: if specified, overrides the default phase mode set
|
||||||
by ``set_phase_mode`` for this call.
|
by ``set_phase_mode`` for this call.
|
||||||
:param phase_offset: adds an offset, in turns, to the phase.
|
|
||||||
"""
|
"""
|
||||||
if phase_mode == PHASE_MODE_DEFAULT:
|
if phase_mode == _PHASE_MODE_DEFAULT:
|
||||||
phase_mode = self.phase_mode
|
phase_mode = self.phase_mode
|
||||||
|
|
||||||
syscall("dds_set", time_to_cycles(now()), self.channel,
|
syscall("dds_set", time_to_cycles(now()), self.channel,
|
||||||
self.frequency_to_ftw(frequency), round(phase_offset*2**14),
|
self.frequency_to_ftw(frequency), round(phase*2**14),
|
||||||
phase_mode)
|
phase_mode)
|
||||||
|
|
Loading…
Reference in New Issue