46 lines
2.2 KiB
Python
46 lines
2.2 KiB
Python
# SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
|
|
# SPDX-License-Identifier: CC0-1.0
|
|
import pytest
|
|
from pytest_embedded import Dut
|
|
from pytest_embedded_idf.utils import idf_parametrize
|
|
|
|
|
|
def test_dac_continuous_output(dut: Dut, mode: str, chan0_io: str, chan1_io: str) -> None:
|
|
dut.expect('dac continuous: --------------------------------------------------', timeout=10)
|
|
dut.expect('dac continuous: DAC continuous output by {}'.format(mode), timeout=10)
|
|
dut.expect('dac continuous: DAC channel 0 io: GPIO_NUM_{}'.format(chan0_io), timeout=10)
|
|
dut.expect('dac continuous: DAC channel 1 io: GPIO_NUM_{}'.format(chan1_io), timeout=10)
|
|
dut.expect('dac continuous: Waveform: SINE -> TRIANGLE -> SAWTOOTH -> SQUARE', timeout=10)
|
|
dut.expect('dac continuous: DAC conversion frequency \\(Hz\\): ([0-9]+)', timeout=10)
|
|
dut.expect('dac continuous: DAC wave frequency \\(Hz\\): ([0-9]+)', timeout=10)
|
|
dut.expect('dac continuous: --------------------------------------------------', timeout=10)
|
|
dut.expect(r'DAC channel 0 value:( +)(\d+)(.*)DAC channel 1 value:( +)(\d+)', timeout=10)
|
|
dut.expect(r'dac continuous\({}\): triangle wave start'.format(mode), timeout=20)
|
|
dut.expect(r'dac continuous\({}\): sawtooth wave start'.format(mode), timeout=20)
|
|
dut.expect(r'dac continuous\({}\): square wave start'.format(mode), timeout=20)
|
|
dut.expect(r'dac continuous\({}\): sine wave start'.format(mode), timeout=20)
|
|
|
|
|
|
@pytest.mark.generic
|
|
@pytest.mark.parametrize(
|
|
'config',
|
|
[
|
|
'dma',
|
|
'timer',
|
|
],
|
|
indirect=True,
|
|
)
|
|
@idf_parametrize('target', ['esp32', 'esp32s2'], indirect=['target'])
|
|
def test_dac_continuous_example_with_dma(dut: Dut) -> None:
|
|
sdkconfig = dut.app.sdkconfig
|
|
if dut.target == 'esp32':
|
|
if sdkconfig['EXAMPLE_DAC_CONTINUOUS_BY_DMA']:
|
|
test_dac_continuous_output(dut, 'DMA', '25', '26')
|
|
else:
|
|
test_dac_continuous_output(dut, 'timer', '25', '26')
|
|
elif dut.target == 'esp32s2':
|
|
if sdkconfig['EXAMPLE_DAC_CONTINUOUS_BY_DMA']:
|
|
test_dac_continuous_output(dut, 'DMA', '17', '18')
|
|
else:
|
|
test_dac_continuous_output(dut, 'timer', '17', '18')
|