Adding a sine wave

Can you help me to add a sine wave output to square wave generator code A, maybe by combining A and B codes ?

Code A

HardwareTimer pwmtimer2(2);
void setup() {
 pinMode(A0, PWM);
  pwmtimer2.pause();
  pwmtimer2.setPrescaleFactor(10);   
  pwmtimer2.setOverflow(1000-1);            
  pwmtimer2.setCompare(TIMER_CH4, 500);
  pwmtimer2.refresh();
  pwmtimer2.resume();
}

Code B

int amp = 35;
float stp = 6.2831 / SAMPLES;
int ret = 17;

void init_wave()
{
  int i;
  for (i = 0; i < SAMPLES; i++)
  {
    val1[i] = 50 + amp * sin(stp * i);
  }
}

void setup() {
  timer_conf();
  init_wave();

}

What is your hardware set up ? The AVR based Arduinos have no Digital to analog converter so you have to add something maybe (a) a low pass filter or (b) say 4 resistors or (c) an external adc

That I know, the output can be A1 PWM

OK. Google for "arduino analog output sine wave pwm" and see if something matches your needs.

Hi
it is possible to add Sine Look Up Table to this generator to get sinewave ?

HardwareTimer pwmtimer2(2);
void setup() {
pinMode(A0, PWM);
 
  pwmtimer2.pause();
  pwmtimer2.setPrescaleFactor(1);      
  pwmtimer2.setOverflow(10000-1);          
  pwmtimer2.setCompare(TIMER_CH4, 5000); 
  pwmtimer2.refresh();
  pwmtimer2.resume();
}

void loop() {
}
byte sine256[] PROGMEM = { 
    127,130,133,136,139,143,146,149,152,155,158,161,164,167,170,173,176,178,181,
    184,187,190,192,195,198,200,203,205,208,210,212,215,217,219,221,223,225,227,
    229,231,233,234,236,238,239,240,242,243,244,245,247,248,249,249,250,251,252,
    252,253,253,253,254,254,254,254,254,254,254,253,253,253,252,252,251,250,249,
    249,248,247,245,244,243,242,240,239,238,236,234,233,231,229,227,225,223,221,
    219,217,215,212,210,208,205,203,200,198,195,192,190,187,184,181,178,176,173,
    170,167,164,161,158,155,152,149,146,143,139,136,133,130,127,124,121,118,115,
    111,108,105,102,99,96,93,90,87,84,81,78,76,73,70,67,64,62,59,56,54,51,49,46,
    44,42,39,37,35,33,31,29,27,25,23,21,20,18,16,15,14,12,11,10,9,7,6,5,5,4,3,2,
    2,1,1,1,0,0,0,0,0,0,0,1,1,1,2,2,3,4,5,5,6,7,9,10,11,12,14,15,16,18,20,21,23,
    25,27,29,31,33,35,37,39,42,44,46,49,51,54,56,59,62,64,67,70,73,76,78,81,84,
    87,90,93,96,99,102,105,108,111,115,118,121,124,
};

Restatement/repost of Adding a sine wave - Programming Questions - Arduino Forum

There was no solution, maybe this time ?

it is possible to add Sine Look Up Table to this generator to get sinewave ?

No. You need a DAC.

Threads merged.

ted:
There was no solution, maybe this time ?

There was. Stop cross-posting.

What is wrong with that, asking again question ?

You wasted @el_supremo's time.

You wasted @jremington's time.

You wasted my time.

Asking the same question a second time after being given accurate answers but expecting different results is a sign of insanity.

I don't ask you to read my post to waste the time, so when you see my thread, do not read.

Sine has two parameters, frequency and shape, both info is presented, there should be some method to generate the sine based on this info.

Use a DAC (digital to analog converter) together with your sine table, as already mentioned in reply #7.

Can I use PWM filter for that ?

Not in general, because PWM low pass filters are frequency dependent.

Actually I have sine wave generator with RC filter and is working ok, but the program is long, so if new approach will work, that will be the simplest sine wave generator

Timer2.setCompare(TIMER_CH4, sine_wave[indx++]);