Вот код:
Код
const uint16_t sin[32] = {
2047, 2447, 2831, 3185, 3498, 3750, 3939, 4056, 4095, 4056,
3939, 3750, 3495, 3185, 2831, 2447, 2047, 1647, 1263, 909,
599, 344, 155, 38, 0, 38, 155, 344, 599, 909, 1263, 1647};
unsigned char i=0;
........
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
DAC->CR |= DAC_CR_EN1;
while(1)
{
DAC->DHR12R1=sin[i++];
if (i==32) i=0;
delay_us(10);
}
2047, 2447, 2831, 3185, 3498, 3750, 3939, 4056, 4095, 4056,
3939, 3750, 3495, 3185, 2831, 2447, 2047, 1647, 1263, 909,
599, 344, 155, 38, 0, 38, 155, 344, 599, 909, 1263, 1647};
unsigned char i=0;
........
RCC_APB1PeriphClockCmd(RCC_APB1Periph_DAC, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
DAC->CR |= DAC_CR_EN1;
while(1)
{
DAC->DHR12R1=sin[i++];
if (i==32) i=0;
delay_us(10);
}
На выходе получаю синусоиду от 1.5 до 2.3 вольт.
Пытаюсь разобраться, как же она расчитывается - в формуле фигурирует Vref.
А у указанного контроллера такой ножки нет.
Как быть? Мне надо полноразмерную синусоиду.