您可以使用stream writers 中的計數器寫入器類別來配置計數器輸出任務的頻率和佔空比。
計數器編寫器將在DAQ-mx任務中將樣本寫入計數器輸出通道,一種方法是使用write_one_sample_pulse_frequency方法,請參考以下步驟說明:
import nidaqmx
from nidaqmx.stream_writers import CounterWriter
from nidaqmx.constants import *
with nidaqmx.Task() as task:
task.co_channels.add_co_pulse_chan_time(counter = "cDAQ1Mod1/ctr1")
task.timing.cfg_implicit_timing(sample_mode=AcquisitionType.CONTINUOUS)
cw = CounterWriter(task.out_stream, True)
task.start()
cw.write_one_sample_pulse_frequency(100, 0.1, 10)
此方法的參數如下:
- frequency(float) –指定以什麼頻率產生脈衝。
- duty_cycle(float) –指定脈衝寬度除以脈衝週期。 NI-DAQmx使用該比率和頻率來確定脈衝寬度和脈衝間隔。
- auto_start(Optional [bool]) –指定如果您未使用DAQmx啟動任務方法顯式啟動任務,則此方法是否自動啟動任務。
- timeout(Optional [float]) –指定等待方法寫入所有樣本的時間(以秒為單位)。 NI-DAQmx僅在該方法必須等待寫入資料後才執行超時檢查。如果時間已過,此方法將回傳錯誤。預設超時為10秒。如果將超時設置為nidaqmx.constants.WAIT_INFINITELY,則該方法將無限期等待。如果將超時設置為0,則該方法將嘗試一次寫入提交的樣本。如果該方法無法寫入所有提交的樣本,則它將回傳錯誤和成功寫入的樣本數。