Ist das der ganze Code? Wenn ja, dann fehlt die Portinitialisierung und main().
Wenn es nicht der ganze Code ist poste einmal den Ganzen.
Ich vermute, dass es an der Portinitialisierung liegt. Ob der SMC defekt ist kannst du leicht prüfen, indem du einen Widerstand zw. 5V und Takt/Richtungs-Pin schaltest und jeweils einen Taster/Schalter zwischen den Pin und GND.

MfG Hannes