Цитата(Dustinthewind @ Apr 11 2007, 18:50)

Не могу понять почему из цикла вылетает после прерывания
Как минимум убрать строки
Код
_BIC_SR(GIE);//general interrupt disable
_BIS_SR(GIE);//general interrupt able
Ибо при входе в прерывание прерывания запрещаются автоматически а при выходе также автоматически разрешаются. Во-вторых (если мне не изменяет память), в прерывании надо читать ADC12IV. Иначе вы получали повторную генерацию прерывания и попадали в него сразу после _BIS_SR(GIE);, т.е. до выхода из обработчика и в конце концов переполняли стек.
И еще маленький совет: вместо _BIS_SR(GIE), _BIC_SR(GIE) можно использовать функции __enable_interrupt() и __disable_interrupt(), которые делают то же самое но не нуждаются в комментариях.