/* */ #define PWM_CT2A 11 //OC2A #define PWM_CT2B 3 //OC2B #define maxpwm 127 void ct2_init() { pinMode(PWM_CT2A, OUTPUT); pinMode(PWM_CT2B, OUTPUT); TCCR2A = (1 << COM2B1) |(1 << COM2B0) | (1 << COM2A1) | (1 << WGM20); //fast PWM TCCR2B = (1 << CS20); // prescaler 0 OCR2A = 0; OCR2B = 255; // pwm value } void setup() { pinMode(LED_BUILTIN, OUTPUT); Serial.begin(115200); ct2_init(); } void setct(uint8_t data) { uint8_t ld = constrain(data,0,maxpwm); OCR2A = ld; // TOP overflow value (Hz) OCR2B = 255-ld; // pwm value } uint8_t ct,i; uint8_t power = 1; uint8_t sintab[10] ={0,10,30,40,45,40,30,10,0}; void loop() { for (i=0;i<10;i++) { delay(1); ct = power * sintab[i]; setct(ct); } }