int16_t res;//целочисленная шестнадцатиразрядная переменная, благодаря ей будем наблюдать эффект переполнения
float A=0.8; // задаем амплитуду сигнала
float shag=0.05;// задаем шаг (период отсчёта)
float t0 = 0; //задаём начальное значение по оси времени

int ssat(float x,int over);//функция насыщения х - значение на входе, over - разрядность

void setup() {
Serial.begin(4800); //задаем скорость обмена данными с портом 
}

void loop() {
for(int t=0;t<1000;t++){
res=A*sin(t0+shag*t)*32767,16;//вычисляем значение нашей функции в цикле и масштабируем на весь числовой диапазон
Serial.println(res);
}
delay(1);//даем задержку,чтобы значения функции на плотере выводились корректно
}


int ssat(float x,int over){
  int K = 0; 
  float predel = pow(2,over)/2; 
  if(x>predel-1){
    K = predel-1;
    }
    if(x < -1*predel){
      K = -1*predel;
      }
      if ((x >-1*predel ) &&(x< predel-1))
      {
        K = x; 
      }
      return (K);      
  }
