ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
19 апреля
612766
Mistre (06.08.2015 16:03, просмотров: 36065)
Хочу сделать синусоиду от 0 Гц до 50 Гц за 60 секунд В примере ниже синусоида частотой 50 Гц Первая мысль это прописать значения каждого F ( частота ) от 0 до 50 и считать для каждого момента времени значение синусойды. Наверно можно как-то проще??
#define F 50
const float A = 4095;

#define Fd 3200
const int N = Fd/F;
const float pi = 3.1415926f;
int i;

void TIM6_DAC_IRQHandler(void) {
   float v;

  TIM_ClearITPendingBit(TIM6, TIM_IT_Update);

  v = A/2+A/2*sin(((float)i)*pi*2/N);    //+A/4*sin(((float)i)*3*2*pi/N); // третья гармоника
  i++;
  DAC_SetChannel2Data(DAC_Align_12b_R, (int)v);
};
int main()
{
  RCC_GetClocksFreq(&Clocks);
  Init();
  i = 0;
while (1) {

  };
}