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
Lesezeichen