Трёхфазный генератор на ATtiny13

Необходимость тестирования одного из устройств сподвигла на создание простого трёхфазного генератора. Для этого был выбран распространённый микроконтроллер ATTINY13A. Схема данного устройства представлена на рисунке 1.

Рис.1 Принципиальная схема трёхфазного генератора 

Программная часть написана в среде AtmelStudio на языке С++, код представлен ниже.

/*
*Created: 28/08/18 
*Author : Aleksei Tarasov (bitenegy.ru)
*/

#include <avr/io.h>//мк ATtiny13A
#define F_CPU 1168000L
#include <avr/io.h>
#include <util/delay.h>
#include <avr/sfr_defs.h>

int main(void)
{

   PORTB = 0b00000000;
   DDRB = 0b00010011;
   float delta = 3.33;// константа задержки
   while (1)
  {

   PORTB = 0b00010001;
   _delay_ms(delta);//delay_ms(3.33)
   PORTB = 0b00000001;
   _delay_ms(delta);
   PORTB = 0b00000011;
   _delay_ms(delta);
   PORTB = 0b00000010;
   _delay_ms(delta);
   PORTB = 0b00010010;
   _delay_ms(delta);
   PORTB = 0b00010000;
   _delay_ms(delta);

  }
}
 

Меню программатора

Программатор Тритон, домашняя страничка

Fuse биты (6AFF). Светодиоды служат индикацией переключения фаз, для видимого варианта можно кратно уменьшить частоту, установив другое значение константы задержки, например (333). В данном же варианте частота достаточно стабильная, около 50гц. Микроконтроллер прошивался с помощью программатора Тритон, рис.2. Подключён внутренний генератор контроллера. Выбран бесконечный цикл, как наиболее стабильный по частоте переключения.