wie radbruch schon schrieb, die set und clr register werden nur mit den bits angestuert die du schalten möchtest, die Zeilen

PORTC_OUTSET |= (1<<PIN_SCK);
und
PORTC_DIRSET |= (1<<PIN_SCK)

sind ebenfalls falsch, sollte aber nicht das Problem erklären, man sollte es nur nicht zur Gewohnheit machen mit |= bei den Registern zu arbeiten

ich vermute mal dass dein SCK Pin nur einmal high geht und nie weider low, daher wertest du imer nur das erste bit aus

PPS: wenn dir das mit den set und clr registern zu ungeheuer ist kannst du auch die normalen OUT register wie früher benutzen, kostet halt nur ein paar takte mehr zeit