problem with PWM using direct manipulation of registers

Hey guys, I am currently learning to use direct register manipulation to generate PWM signal at will. I tried the following code on arduino, and I could not detect the desired 800 Hz PWM signal on pin 9(PB1) and pin9(PB2) and I could not figure out what is the problem. Could anyone tell me what are the problems with this code? thank you.

void setup(){
  DDRB |= _BV(PB1) | _BV(PB2);//set bit PB1 and PB2 in DDRB register to 1 to enable PB1 as output 
  TCCR1A |= _BV(WGM11) | _BV(COM1A1) | _BV(COM1A0);//set bit COM1A1 and COM1A0 to 1 to set output to inverting mode
  TCCR1B |= _BV(WGM12) | _BV(WGM13) | _BV(CS10); // set WGM11, WGM12, WGM13 to 1  to set wavegeneration mode to Fast PWM
  ICR1 = 19999;
  OCR1A = 9999;
  OCR1B = 9999; 
}
void loop(){
  }

By the way, I tried this code in arduino UNO.

By the way, I tried this code in arduino UNO.

Could anyone tell me what are the problems with this code?

There are presets from the IDE which are used to set up the standard PWM used by analogWrite(). You need to clear them before setting your values. The |= preserves them.

TCCR1A = 0;
TCCR1B = 0;

Another thing I noticed is that you have not set COM1B1 and COM1B0.