>Muss man dazu den Timer verwenden?

Entweder das, oder du machst dich mal über die delay.h schlau. Aber im Normalfall nimmt man den Timer, da der Controller parallel noch andere Aufgaben zu erledigen hat.