Conflact with interrup?

hi, i am having a problem right now,

https://playground.arduino.cc/Main/TimerPWMCheatsheet

i close first the arduino ide then
i change first the line stated in the page. then close
i set the arduino pwm pin 6 to 62KHz.

i set also the timer2 so trigger every 100ms

and have i2c ads1115.

but the main is problem is, the delay in loop is not correct, like delay(1000)
since i already change the line stated in the page
from
#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(64 * 256))
to
#define MICROSECONDS_PER_TIMER0_OVERFLOW (clockCyclesToMicroseconds(1 * 256))

and also. the timer2 will not trigger if i put this line into flash function
adc0 = ads1115.readADC_SingleEnded(0);
it will just stop

i attach the code hoping everyone could help me.

#include <avr/interrupt.h>
#include <avr/io.h>
#include <MsTimer2.h>
#include <LiquidCrystal.h>
//75 volts
const int rs = 7, en = 9, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
long counter;
#include <Wire.h>
#include <Adafruit_ADS1015.h>
Adafruit_ADS1115 ads1115;
void pwm_frequency_setup(void)
{
	pinMode(SD_DRIVER_ENABLE, OUTPUT);
	digitalWrite(SD_DRIVER_ENABLE, LOW);
	pinMode(PWM, OUTPUT);
	//Fast PWM (mode 3) on OC0A (Arduino pin 6)
	//TCCR0A = 0b00000011;
	//TCCR0B = 0b00000001; //Prescaler=1
	TCCR0A = _BV(COM0A1) | _BV(COM0B1) | _BV(WGM01) | _BV(WGM00);
	TCCR0B = _BV(CS00);
	DUTY_CYCLE = 0;
	OCR0A = DUTY_CYCLE;
	MsTimer2::set(100, flash); // 100ms period
	MsTimer2::start();
}
void buck_enable(void)
{
	// Clock source enabled with prescaler=1
	TCCR0A &= 0b10111111;
	TCCR0A |= 0b10000000;
	//Enable signal high
	digitalWrite(SD_DRIVER_ENABLE, HIGH);
}
void buck_disable(void)
{
	//Enable signal low
	digitalWrite(SD_DRIVER_ENABLE, LOW);
	// Clock source disabled
	TCCR0A &= 0b00111111;
	DUTY_CYCLE = 0;
}


void flash(void)
{
	//every 100ms code will execute
}


void setup() {
	lcd.begin(20, 4);
	ads1115.begin();
	ads1115.setGain(GAIN_TWOTHIRDS);
	Serial.begin(115200);
	pwm_frequency_setup();
	buck_disable();
	solar_check();
	for (int batchar = 0; batchar <   6; ++batchar) {
		lcd.createChar(batchar, battery_icons[batchar]);
	}
	lcd.createChar(PWM_ICON, _PWM_icon);
	lcd.createChar(SOLAR_ICON, _SOLAR_icon);
	Serial.println(DUTY_CYCLE);
	pinMode(13, OUTPUT);
	
}

void loop() {
	
	//  bat_percent_display();
	//  lcd_print_display();
	delay(1000);
	Serial.println("loop");
	float Voltage = 0.0;
	int16_t adc0;  // we read from the ADC, we have a sixteen bit integer as a result
	adc0 = ads1115.readADC_SingleEnded(0);
	adc0 = ads1115.readADC_SingleEnded(1);
	adc0 = ads1115.readADC_SingleEnded(2);
	adc0 = ads1115.readADC_SingleEnded(3);
	Voltage = (adc0 * 0.1875) / 1000;
	//battery
	Voltage = Voltage * 21.78;
	Voltage = Voltage + 0.44;
	Serial.print("AIN0: ");
	Serial.print(adc0);
	Serial.print("\tVoltage: ");
	Serial.println(Voltage, 7);
}

This may help: www.xyproblem.info