Servo к attiny85 и(или) attiny13

Большое Спасибо.

Здесь правится частота RC генератора, чтобы удержаться в значениях сервы (544-2400)

// ATMEL                                ATtiny 25/45/85
//                                           +-\/-+
//             !RESET PCINT5 5/A0 (D 5) PB5 1|    |8  Vcc
//  XTAL1 CLKI !OC1B  PCINT3 3/A3 (D 3) PB3 2|    |7  PB2 (D 2) 2/A1 PCINT2 USCK SCK T0   INT0 SCL
//  XTAL2 CLKO  OC1B  PCINT4 4/A2 {D 4) PB4 3|    |6  PB1 (D 1) pwm1 PCINT1 MISO DO  OC0B AIN1
//                                      GND 4|    |5  PB0 (D 0) pwm0 PCINT0 MOSI DI  OC0A AIN0 SDA AREF
//                                           +----+

#define SERVO_PIN 3
#define MIN_PULSE_WIDTH       544     // the shortest pulse sent to a servo  
#define MAX_PULSE_WIDTH      2400     // the longest pulse sent to a servo 
#define DEFAULT_PULSE_WIDTH  1000     // default pulse width when servo is attached
#define REFRESH_INTERVAL    20000     // minimum time to refresh servos in microseconds 

volatile uint16_t angle = 90;
volatile uint16_t s_tau = 2250;
volatile uint32_t old_millis;
volatile uint32_t old_ms;
bool sweep = false;


// функция преобразования в константу задержки (получает значение в градусах угла поворота сервы)
uint16_t set_pulse(uint16_t pulse) {
  return map(pulse, 0, 180, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
}

// функция формирования импульса
void pulseOut(uint8_t pin) {
  digitalWrite(pin, HIGH);
  for (int i = 1; i <= s_tau; i++)  delayMicroseconds(1);
  digitalWrite(pin, LOW);
}

void setup() {
  OSCCAL+=61; // OSCCALL для 8Mhz
  
  pinMode(3, OUTPUT);
  pulseOut(SERVO_PIN);
  delay(20);
  old_millis = millis();
  old_ms = old_millis;
}

void loop() {
  static uint16_t angle = 0;

  if (millis() - old_millis >= 20) {
    pulseOut(SERVO_PIN);
    old_millis = millis();
  }

  if (millis() - old_ms >= 50 && !sweep) {
    angle++;
    if (angle > 180) sweep = true;
    s_tau = set_pulse(angle);
    old_ms = millis();
  }

  if (millis() - old_ms >= 50 && sweep) {
    angle--;
    if (angle == 0) sweep = false;
    s_tau = set_pulse(angle);
    old_ms = millis();
  }
}