keton333 0 27 августа, 2023 Опубликовано 27 августа, 2023 (изменено) · Жалоба Здравствуйте, хочу настроить ЦАП на плате MSP-EXP430FR2355 и передавать в него массив значений. Вроде бы настроил, когда проверяю на мультиметре он показывает только одно последнее значение, а когда проверяю осциллографом показывает одно напряжение и непонятные кратковременные импульсы. В чем может быть дело? Ниже участок кода. GPIO_setAsPeripheralModuleFunctionOutpuPin(GPIO_PORT_P1, GPIO_PIN1, GPIO_TERNARY_MODULE_FUNCTION); SAC_OA_init(SAC0_BASE, SAC_OA_POSITIVE_INPUT_SOURCE_DAC, SAC_OA_NEGATIVE_INPUT_SOURCE_PGA); SAC_OA_select_PowerMode(SAC0_BASE, SAC_OA_POWER_MODE_LOW_SPEED_LOW_POWER); SAC_enable(SAC0_BASE); SAC_OA_enable(SAC0_BASE); SAC_DAC_enable(SAC0_BASE); SAC_DAC_selectRefVoltage(SAC0_BASE, SAC_DAC_PRIMARY_REFERENCE); SAC_DAC_selectLoad(SAC0_BASE, SAC_DAC_LOAD_DACDAT_WRITTEN); int array[5] = {1000, 1500, 2500, 3000, 3500 }; while(1){ for(int i=0; i<=5; ++i){ SAC0DAT=array; } } Изменено 27 августа, 2023 пользователем haker_fox Для оформления кода есть кнопка <>. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Serj_T 0 28 августа, 2023 Опубликовано 28 августа, 2023 · Жалоба Так попробуйте: SAC0DAT=array[i]; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
keton333 0 28 августа, 2023 Опубликовано 28 августа, 2023 · Жалоба 19 минут назад, Sergey T сказал: Так попробуйте: SAC0DAT=array[i]; Извиняюсь, так и написано у меня, просто опечатался Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 28 августа, 2023 Опубликовано 28 августа, 2023 · Жалоба ну так вы в ЦАП подряд засунули все значения, с паузой в несколько тактов между записями, там у ЦАПа settling time поди сильно дольше. что он по вашему показать должен был? uint32_t i = 0; while(1) SAC0DAT = (i++)>>6; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться