So, ich habe Dein Programm jetzt mal bei mir compiliert.
Scheint so weit eigentlich alle zu laufen. Er steigt bei mir auch nicht aus, wenn er in die adc-Funktion geht.
Dass Deine PWM nicht läuft, liegt wohl daran, dass Du die pwm_init() in der while-Schleife dauernd aufrufst. Initialisierungen sollte nur einmal beim Start aufgerufen werden.

Gruß,
askazo