Es sollte auch ohne Volatile gehen. Die Variable ist aber nicht initialisiert.

Die initialisierung vom Timer sollte man mit einem = statt einem |= machen. Dann hat man alle Bits definiert, und muß nicht ggf. noch suchen wo die anderen Festgelegt sind.