keton333 0 August 27 Posted August 27 (edited) · Report post Здравствуйте, хочу настроить ЦАП на плате 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; } } Edited August 27 by haker_fox Для оформления кода есть кнопка <>. Quote Share this post Link to post Share on other sites More sharing options...
Serj_T 0 August 28 Posted August 28 · Report post Так попробуйте: SAC0DAT=array[i]; Quote Share this post Link to post Share on other sites More sharing options...
keton333 0 August 28 Posted August 28 · Report post 19 минут назад, Sergey T сказал: Так попробуйте: SAC0DAT=array[i]; Извиняюсь, так и написано у меня, просто опечатался Quote Share this post Link to post Share on other sites More sharing options...
_pv 30 August 28 Posted August 28 · Report post ну так вы в ЦАП подряд засунули все значения, с паузой в несколько тактов между записями, там у ЦАПа settling time поди сильно дольше. что он по вашему показать должен был? uint32_t i = 0; while(1) SAC0DAT = (i++)>>6; Quote Share this post Link to post Share on other sites More sharing options...