Ok, just done the test with this code and for me it works fine
#include <util/delay_basic.h>
int outputPsuB = 12; // Timer1-B
int outputPsuC = 13; // Timer1-C
unsigned long time;
void setup()
{
Serial.begin(9600);
// PSU outputs via timer1
pinMode(outputPsuB, OUTPUT); // select Pin as ch-B
pinMode(outputPsuC, OUTPUT); // select Pin as ch-C
TCCR1A = B00101001; // Phase and frequency correct PWM change at OCRA
TCCR1B = B10101; // System clock / 1024 from prescaler
OCR1A = 10000; // 0.78125 Hz
OCR1B = 7500; // 75% PWM
OCR1C = 500; // 5% PWM
TCCR0A = TCCR0A & 0x3F; // disable OC0A from timer0
}
void loop()
{
Serial.print("Time: ");
time = millis();
//prints time since program started
Serial.println(time);
// wait a second so as not to send massive amounts of data
delay(1000);
}
The terminal gives these values and I have correct PWM on pin 12 & 13:
Time: 4
Time: 1012
Time: 2023
Time: 3034
Time: 4045
Time: 5056
Time: 6067
Time: 7078
Time: 8090
Time: 9101
Time: 10113
Time: 11125
Time: 12137
Now if I remove the timer1 & timer0 specific initialization in setup(), I get same Time code log computed by millis() except there will be no PWM modulating pin 12 & pin 13.
Let me know if this fits what you wanted to test !