/* */ #define PWM_CT2A 11 //OC2A #define PWM_CT2B 3 //OC2B #define maxpwm 120 void ct2_init() { pinMode(PWM_CT2A, OUTPUT); pinMode(PWM_CT2B, OUTPUT); TCCR2A = (1 << COM2B1) |(1 << COM2B0) | (1 << COM2A1) | (1 << WGM20); 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; OCR2B = 255-ld; // pwm value } uint8_t ct,i; uint8_t sintab10[11] ={0,39,75,103,121,127,121,103,75,39,0}; // 50ns resonance = 20mhz. void loop() { for (i=0;i<11;i++) { uint8_t h; //delay(1); delayMicroseconds(900); h = sintab10[i]; ct = h/2; // + h/4 + h/8; setct(ct); } /* if (Serial.available()) { int inp; inp = Serial.read(); Serial.println(inp); if (inp == 49) ct+=10; if (inp == 50) ct-=10; Serial.println(ct); } setct(ct); delay(100); */ }