Programming the hardware timers - advanced level

Using your code in a working sketch, thus:

void setup ()
{
  pinMode (6,OUTPUT);
  // Timer 0 -> Output on OC0A
  TCCR0A = _BV(WGM01)   // CTC mode
          |_BV(COM0A0); // Toggle OC0A output on every match
  OCR0A = 4;            // Reset when it reaches this value
  TCCR0B = _BV(CS00);   // Start timer, no prescale
}
void loop () { }

I get 1.6 MHz frequency (which you expect). The ringing isn't too bad for that frequency on my scope:

The above capture was with the probe set to x10.


The above is with a x1 probe.


... signals are there, they're just horrible ...

Can you post what you have?