kommt noch mit der zeit, statt C funktionen zu vergewaltigen, würde ich dir sowieso vorschlagen ein wenig mehr mit dem datenblatt zu arbeiten, einfach kapitelweise abarbeiten und jede funktion einmal durchprobieren, soweit möglich

wenn du die peripherie beherrschst, umgehst du zumeist probleme die durch umständliche softwarefunktionen entstehen

in deinem falle mal in die timer einarbeiten ^^

und deine Lauflichtfunktion benutzt du als ausgabe

PS: wenn du mit interrupts arbeitest, das "sei()" nicht vergessen um global die interrupts zu aktivieren, standardmäßig sie die aus bei programmstart