Square wave#

type uz_wavegen_square_t#
float uz_wavegen_square_sample(uz_wavegen_square_t *self, float amplitude, float frequency_Hz, float duty_cycle)#

Returns one sample of a square wave (+amplitude during duty, -amplitude after).

Parameters:
  • self – Pointer to uz_wavegen_square instance

  • amplitude – Amplitude for the square wave

  • frequency_Hz – Frequency for the square wave in Hz. Only positive values are permitted

  • duty_cycle – Duty Cycle for the square wave. Only values 0.0 <= DutyCycle <= 1.0 is permitted

Returns:

Returns one sample for current system time

Example#

Listing 93 Example function call to square wave generator#
1#include "uz_wavegen.h"
2int main(void) {
3   float amplitude = 6.0f;
4   float frequency_Hz = 20.0f;
5   float duty_cycle = 0.5f;
6   uz_wavegen_square_t* square = uz_wavegen_square_init();
7   float output = uz_wavegen_square_sample(square, amplitude, frequency_Hz, duty_cycle);
8}

Description#

This function calculates a square wave. The phase is tracked in the wavegen instance and advanced on each sample call.

Figure made with TikZ

Fig. 341 square wave