Wenn's schneller wird, überlappt sich die sache, d.h. die stellst über PortD eine Led ein, hast aber noch den compare von der vorigen LED

du müsstest eigentlich:
Code:
Do 
  For x = 0 to 63            ' nächster
        PORTD = X              ' Auswahl der LED     
        compare  = a(x)         ' mehr oder weniger aufrehen
        Waitms nn               ' etwas leuchten lassen 
        compare = 0             ' auf jeden Fall abdrehen
  Next                             ' weiter 
Loop