modified sine wave
sine wave,pure sine wave,pure sine wave
inverter,sine wave inverter,inverter modified sine
wave,what is modified sine wave
inverter,modified,pure sine wave inverter vs
modified,modified sine wave inverter
efficiency,modified sine wave inverter
oscilloscope,modified sine,pure sine wave &
modified sine wave power inverters,modified
wave,modified sqaure wave,modified sine
inverter,stepped sine wave
circuit diagram
// MakeIdea [Hemant]
#include <avr/io.h>
#include <avr/interrupt.h>
#include <math.h>
#define SinDivisions (200)
static int microMHz = 16;
static int freq = 50;
static long int period;
static unsigned int lookUp[SinDivisions];
static char theTCCR1A = 0b10000010;
void setup()
{
double temp;
period = microMHz*1e6/freq/SinDivisions;
for(int i = 0; i < SinDivisions/2; i++)
{
temp = sin(i*2*M_PI/SinDivisions)*period;
lookUp[i] = (int)(temp+0.5);
}
TCCR1A = theTCCR1A;
TCCR1B = 0b00011001;
TIMSK1 = 0b00000001;
ICR1 = period;
sei();
DDRB = 0b00000110;
pinMode(13, OUTPUT);
}
void loop(){;}
ISR(TIMER1_OVF_vect)
{
static int num;
static int delay1;
static char trig;
if(delay1 == 1)
{
theTCCR1A ^= 0b10100000;
TCCR1A = theTCCR1A;
delay1 = 0;
}
else if(num >= SinDivisions/2)
{
num = 0;
delay1++;
trig ^=0b00000001;
digitalWrite(13,trig);
}
OCR1A = OCR1B = lookUp[num];
num++;
}