Beispiel #1
0
void AdcDacStartSynchro(uint32_t period, uint16_t amplitude)
{
	if(g_adcStatus==1)
		AdcStop();//Потенциально здесь может все зависнуть, если цикл внутри AdcQuant не завершился
	//for(int i=0;i<RESULT_BUFFER_SIZE;i++)
	//	g_resultBuffer[i]=0x00080008;

	g_cur_cycle = 0;

	LcdRepaint();

	DacSetPeriod(period, amplitude);
	AdcRoundSize(DacSamplesPerPeriod());
	AdcStartPre();

	USBAdd32(DacPeriod());
	USBAdd32(SystemCoreClock);
	USBAdd32(DacSamplesPerPeriod());

	ADC_StartConversion(ADC3);
	ADC_StartConversion(ADC4);

	g_adc_elapsed_time = 0;
	StartTimer();
	TIM_Cmd(TIM2, ENABLE); //Start DAC
}
Beispiel #2
0
void DacSetFrequency(uint32_t frequency)
{
	DacSetPeriod(48000/frequency, DAC_AMPLITUDE);
}
Beispiel #3
0
/*
If frequency<=1 khz
SinusBufferSize maximal
TIM_Period = SystemCoreClock / SINUS_BUFFER_SIZE / frequency
*/
void DacSetFrequency(uint32_t frequency)
{
	DacSetPeriod(SystemCoreClock / frequency, DAC_AMPLITUDE);
}