Кусок кода с настройкой модуля тактирования:
CODE
// ***** Настройка модуля тактирования *****************************************
P5SEL|=BIT2+ // Задействовать P5.2 для XT2IN
BIT3; // Задействовать P5.3 для XT2OUT
UCSCTL6&=~XT2OFF; // Включить XT2
UCSCTL3|=SELREF_2; // Источник FLLref - REFO
UCSCTL4|=SELA_2; // Источник ACLK - REFO
do{ // Дождаться стабилизации XT2 и DCO
UCSCTL7&=~(XT2OFFG+ // Сбросить флаг неисправности XT2
XT1LFOFFG+ // Сбросить флаг неисправности XT1 (НЧ)
XT1HFOFFG+ // Сбросить флаг неисправности XT1 (ВЧ)
DCOFFG); // Сбросить флаг неисправности DCO
SFRIFG1&=~OFIFG; // Сбросить флаг неисправности осцилл.
} //
while (SFRIFG1&OFIFG); // Проверить флаг неисправности осцилл.
UCSCTL6&=~XT2DRIVE_2; // Частота XT2 16-24 МГц
UCSCTL4|=SELS_5+ // Источник SMCLK - XT2
SELM_5; // Источник MCLK - XT2
UCSCTL5|=DIVS_4; // SMCLK=XT2/16
Питание: 220В -> импульсный БП 25В -> DC/DC 3В.
Нагрузкой управляю руками, т.е. вручную включаю тумблер на обогревателе.
Цитата(jorikdima @ Oct 18 2010, 12:37)

тумблер дает помеху. Либо тактирование срывается, а у вас нету соответствующего обработчика прерывания. Либо по питанию проблемы: кратковременная просадка, помеха...
Т.е. тактирование может срываться во время прихода помехи? Повторюсь, что зависание/перезагрузка происходят только в моменты включения/выключения нагрузки. Все остальное время МК работает стабильно.
Как корректно обработать прерывание при срыве тактирования?