private void GenerateWaveTable(Wellenform wellenform) { for (int i = 0; i < BitTiefe; i++) { WaveTable[i] = (int)(WaveValue(wellenform, i) * BitTiefe); } }
public FunktionsgeneratorMCP4921(Wellenform wellenform) { wiringPiLib.WiringPiSetupGpio(); da = new DA_MCP4921_SPI(wiringPiLib, 18, 23, 25); GenerateWaveTable(wellenform); }
public Funktionsgenerator8562FPZ_Parallel(Wellenform wellenform) { wiringPiLib.WiringPiSetupGpio(); da = new DA_8562FPZ_Parallel(wiringPiLib); GenerateWaveTable(wellenform); GetEigenFrequenz(); }
private float WaveValue(Wellenform wellenform, int value) { switch (wellenform) { case Wellenform.Saege: return(((float)value) / BitTiefe); case Wellenform.Dreieck: { float fvalue = (2 * (float)value) / BitTiefe; if (fvalue > 1) { fvalue = 2 - fvalue; } return(fvalue); } case Wellenform.Rechteck: { if (value < BitTiefe / 2) { return(0); } return(1); } case Wellenform.Sinus: { double degrees = (double)value / (double)BitTiefe * 360; double sinus = Math.Sin(Math.PI / 180 * degrees); return((float)(sinus / 2) + 1); } default: return(0); } }